无法在 IIS 7.5 上运行 ASP.NET MVC 2 Web 应用程序
Posted
技术标签:
【中文标题】无法在 IIS 7.5 上运行 ASP.NET MVC 2 Web 应用程序【英文标题】:Can't run ASP.NET MVC 2 web app on IIS 7.5 【发布时间】:2010-04-17 18:46:05 【问题描述】:我正在尝试在 Windows 7 的 IIS 下运行 ASP.NET MVC 2 Web 应用程序,但出现 403.14 错误。以下是重现的步骤:
-
打开 Visual Studio 2010
创建一个名为 MvcApplication1 的新 ASP.NET MVC 2 项目
Shift+F5 运行应用程序。您应该会看到
http://localhost:random_port/
并且页面将正确呈现。
单击 MvcApplication1,然后选择“属性”。转到“网络”部分。
选择“使用本地 IIS Web 服务器”并创建一个虚拟目录。
保存。
Shift+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 路由都无法正常工作。
我已经想到并尝试过的事情:
已验证在“打开或关闭 Windows 功能”中启用了所有 IIS 功能。 已验证默认网站配置为使用 .NET 4.0 通过v4.0.30319
目录中的 aspnet_regiis -i
重新分配 ASP.NET v4 脚本映射。
这是最令人惊奇的部分 - 这是在刚刚建造的机器上。 Windows 7 x64 Ultimate 的新副本,Visual Studio 2010 Premium 的全新安装,没有其他网站,也没有执行其他工作。
还有什么我可以尝试的吗?
【问题讨论】:
【参考方案1】:好的,通过以下操作为我解决了这个问题:
在32位目录c:\Windows\Microsoft.NET\Framework\v4.0.30319
中运行aspnet_regiis -i
。
此时,我不明白为什么 64 位模式不起作用,但我现在已经畅通无阻了。希望这对遇到此问题的其他人有所帮助。
【讨论】:
这让我发疯了,多么令人沮丧……现在修复了。干杯 非常感谢,这让我快疯了! 好吧,现在有多晚...这对我不起作用。仍然收到有关未定义默认文档的错误【参考方案2】:我遇到了完全相同的问题,所以感谢您的帮助。
但是...您是否尝试在 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
现在它可以完美运行了。
【讨论】:
【参考方案3】:还要确保你的配置文件有以下行,否则路由将不起作用。
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>
【讨论】:
在 VS 2012 中使用本地 IIS(不是 IIS Express),这就是答案。谢谢。 没想到会这样。我很高兴我试过了。 (这也适用于 .NET 4.5 MVC 4 应用程序。) 非常感谢!这对我有用。不过,我是 .NET 新手,为什么不将它包含在 web.config 中?【参考方案4】:不要使用 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>
【讨论】:
【参考方案5】:另外需要注意的是,确保您的应用程序池设置为集成,而不是经典
【讨论】:
【参考方案6】:我在 IIS8 / Windows Server 2012 上遇到了同样的问题。在我尝试以下方法之前,许多提议的解决方案都没有奏效。
dism /online /enable-feature /featurename:IIS-ASPNET45 /All
如果没有“/All”开关,它会抱怨没有安装父功能。
奇怪的是,根据 Windows 的 Turn Windows Features on or off 工具,asp.net 4.5 已经安装好了。
无需对 web.config 进行任何更改、添加或删除模块。
【讨论】:
【参考方案7】:我一直使用 VS 2008 中的自定义服务器设置,它仍然允许我毫无问题地进行调试。不确定它在 2010 年是否会有所不同
【讨论】:
【参考方案8】:我有这些症状;我的Global.asax
崩溃了。修复了崩溃,现在一切正常。
【讨论】:
我不小心从部署中排除了我的,并且(duh)部署它解决了我的问题。以上是关于无法在 IIS 7.5 上运行 ASP.NET MVC 2 Web 应用程序的主要内容,如果未能解决你的问题,请参考以下文章
在 IIS 7.5 上运行 ASP.NET Core 时,日志在哪里?
ASP.Net / IIS 7.5 无法识别用于 OutputCache 的 jMeter