首页 文章

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

提问于
浏览
61

我试图在Windows 7上的IIS下运行ASP.NET MVC 2 Web应用程序,但是我收到403.14错误 . 以下是重现的步骤:

  • 打开Visual Studio 2010

  • 创建一个名为MvcApplication1的新ASP.NET MVC 2项目

  • 按F5键运行应用程序 . 您应该看到 http://localhost:{random_port}/ 并且页面将正确呈现 .

  • 单击MvcApplication1,然后选择"Properties" . 转到"Web"部分 .

  • 选择"Use Local IIS Web server"并创建虚拟目录 .

  • 保存 .

  • 按F5键运行应用程序 . 您应该看到 http://localhost/MvcApplication1/ 和IIS错误 HTTP Error 403.14 - Forbidden The Web server is configured to not list the contents of this directory. .

很明显,无论出于何种原因,ASP.NET路由都无法正常工作 .

我已经想过并尝试过的事情:

  • 已验证"Turn Windows features on or off"中已启用所有IIS功能 .

  • 已验证默认网站配置为使用.NET 4.0

  • v4.0.30319 目录中通过 aspnet_regiis -i 重新分配了ASP.NET v4脚本映射 .

这是最神奇的部分 - 这是在一台刚刚建造的机器上 . Windows 7 x64 Ultimate的新副本,Visual Studio 2010 Premium的全新安装,没有其他网站,也没有执行其他工作 .

还有什么我可以尝试的吗?

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

8 回答

  • 3

    我有这些症状;我 Global.asax 崩溃了 . 修复了崩溃,现在一切正常 .

  • 0

    好的,通过执行以下操作,我可以解决这个问题:

    32-bit 目录 c:\Windows\Microsoft.NET\Framework\v4.0.30319 中运行 aspnet_regiis -i .

    此时,我不明白为什么64位模式不起作用,但我现在已经解锁了 . 希望这有助于其他任何有此问题的人 .

  • 84

    我有完全相同的问题,谢谢你的帮助 .

    但是......您是否尝试在Visual Studio 64位命令提示符下运行 aspnet_regiis -i 命令(具有管理员权限)?当我这样做时,它修复了64位模式 .

    为了澄清,我右键单击 Visual Studio x64 Win64 Command Prompt (2010) 并选择以管理员身份运行 . 然后我去了这里:

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

    并做到了这一点: aspnet_regiis -i

    现在它完美无缺 .

  • 45

    还要确保配置文件具有以下行,否则路由将不起作用 .

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

    另外需要注意的是,确保您的应用程序池设置为集成,而不是经典

  • 7

    不要使用runAllManagedModulesForAllRequests . 您希望让IIS处理图像等资源 .

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

    而是添加MVC路由模块

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

    我在IIS8 / Windows Server 2012上遇到了同样的问题 . 在我尝试以下操作之前,许多提议的解决方案都没有 .

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

    没有'/ All'开关,它抱怨没有安装父功能 .

    奇怪的是,根据Windows的“打开或关闭Windows功能”功能,已经安装了asp.net 4.5 .

    无需对web.config进行任何更改,添加或删除模块 .

  • 7

    我一直在VS 2008中使用自定义服务器设置,这仍然允许我调试没有问题 . 不确定它在2010年的运作方式是否有所不同

相关问题