Can't run ASP.NET MVC 2 web app on IIS 7.5

2019-01-06 10:14发布

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:

  1. Open Visual Studio 2010
  2. Create a new ASP.NET MVC 2 project called MvcApplication1
  3. Shift+F5 to run the app. You should see http://localhost:{random_port}/ and the page will render correctly.
  4. Click on MvcApplication1, and select "Properties". Go to the "Web" section.
  5. Select "Use Local IIS Web server" and create a virtual directory.
  6. Save.
  7. 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?

Setting Visual Studio to use local IIS web server http://i41.tinypic.com/11j176b.png

8条回答
够拽才男人
2楼-- · 2019-01-06 10:43

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

查看更多
萌系小妹纸
3楼-- · 2019-01-06 10:47

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

查看更多
做自己的国王
4楼-- · 2019-01-06 10:48

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

查看更多
Juvenile、少年°
5楼-- · 2019-01-06 10:49

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>
查看更多
Ridiculous、
6楼-- · 2019-01-06 10:50

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

<system.webServer>
  <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
查看更多
smile是对你的礼貌
7楼-- · 2019-01-06 10:53

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.

查看更多
登录 后发表回答