ChatGPT解决这个技术问题 Extra ChatGPT

无法在 IIS 7.5 上运行 ASP.NET MVC 2 Web 应用程序

I'm trying to run an ASP.NET MVC 2 web application under IIS on Windows 7, but I get a 403.14 error. Here are the steps to reproduce:

Open Visual Studio 2010 Create a new ASP.NET MVC 2 project called MvcApplication1 Shift+F5 to run the app. You should see http://localhost:{random_port}/ and the page will render correctly. Click on MvcApplication1, and select "Properties". Go to the "Web" section. Select "Use Local IIS Web server" and create a virtual directory. Save. Shift+F5 to run the app. You should see http://localhost/MvcApplication1/ and an IIS error HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory..

It's clear that for whatever reason, ASP.NET routing is not working correctly.

Things I've already thought of and tried:

Verified that all IIS features are enabled in "Turn Windows features on or off".

Verified that the default website is configured to use .NET 4.0

Reassigned ASP.NET v4 scripmaps via aspnet_regiis -i in the v4.0.30319 directory.

Here's the most amazing part - this is on a just-built machine. New copy of Windows 7 x64 Ultimate, clean install of Visual Studio 2010 Premium, no other websites and no other work performed.

Anything else I can try?

https://i.stack.imgur.com/Gpizv.png


P
Portman

Ok, this is resolved for me, by doing the following:

Running aspnet_regiis -i in the 32-bit directory c:\Windows\Microsoft.NET\Framework\v4.0.30319.

At this point, I don't understand why 64-bit mode isn't working, but I'm now unblocked. Hopefully this helps anyone else who is having this issue.


This was driving me crazy, how frustrating... fixed now. Cheers
Thanks a bunch, this was driving me crazy!
Well now how late is this... This hasn't worked for me. Still getting an error about a default document not having been defined
T
Tom Chantler

I had exactly the same issue, so thanks for your help.

However... did you try running the aspnet_regiis -i command in the Visual Studio 64 bit command prompt (with admin privileges)? When I did that it fixed it for the 64-bit mode.

To clarify, I right clicked on Visual Studio x64 Win64 Command Prompt (2010) and chose Run as Administrator. Then I went here:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319

And did this: aspnet_regiis -i

And now it works perfectly.


R
Rohan West

Also ensure that you configuration file has the following line otherwise the routing will not work.

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

With VS 2012 using Local IIS (not IIS Express), this was the answer. Thanks.
Didn't think this would do it. I'm glad I tried. (This was for .NET 4.5 MVC 4 app, too.)
Thanks so much! This worked for me. I'm new to .NET though, why wouldn't this have been included in the web.config to start with?
C
Chris Herring

Don't use runAllManagedModulesForAllRequests. You want to let IIS handle resources such as images.

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

Instead add the MVC routing module

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>

J
JGilmartin

Another thing to note, make sure your application pool is set to integrated, not classic


J
Jeroen Ritmeijer

I had this same problem on IIS8 / Windows Server 2012. None of the many proposed solutions worked until I tried the following.

dism /online /enable-feature /featurename:IIS-ASPNET45 /All

Without the '/All' switch it complained that a parent feature was not installed.

The strange thing is that according to Windows' Turn Windows Features on or off facility, asp.net 4.5 was already installed.

There was no need to make any changes to the web.config, add or remove modules.


D
Daniel Schaffer

I've always used the custom server setting in VS 2008, which still allows me to debug with no problems. Not sure if it works any differently in 2010


C
Charlie

I had these symptoms; My Global.asax was crashing. Fixed the crash, everything is working now.


I accidentally excluded mine from deployment and (duh) deploying it fixed my issue.