无法在IIS 7.5上运行ASP.NET MVC 2 Web应用程序
我试图在Windows 7下的IIS下运行ASP.NET MVC 2 Web应用程序,但我得到一个403.14错误。 以下是重现步骤:
- 打开Visual Studio 2010
- 创build一个名为MvcApplication1的新ASP.NET MVC 2项目
- Shift + F5运行应用程序。 你应该看到
http://localhost:{random_port}/
,页面将正确呈现。 - 点击MvcApplication1,然后select“属性”。 转到“Web”部分。
- select“使用本地IIS Web服务器”并创build一个虚拟目录。
- 保存。
- 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路由不能正常工作。
我已经想到和尝试的东西:
- 已validation在“打开或closuresWindowsfunction”中启用了所有IISfunction。
- validation默认网站configuration为使用.NET 4.0
- 通过
v4.0.30319
目录中的aspnet_regiis -i
重新分配了ASP.NET v4 scripmaps。
这是最令人惊叹的部分 – 这是一个刚刚build成的机器。 Windows 7 x64 Ultimate的全新副本,Visual Studio 2010 Premium的全新安装,没有其他网站,也没有其他工作。
还有什么我可以尝试?
将Visual Studio设置为使用本地IIS Web服务器http://i41.tinypic.com/11j176b.png
好的,这是为我解决,做到以下几点:
在32位目录c:\Windows\Microsoft.NET\Framework\v4.0.30319
运行aspnet_regiis -i
。
在这一点上,我不明白为什么64位模式不工作,但我现在已经畅通无阻。 希望这可以帮助任何有这个问题的人。
我有完全相同的问题,所以感谢您的帮助。
但是…你是否尝试在Visual Studio 64位命令提示符(具有pipe理员权限)运行aspnet_regiis -i
命令? 当我这样做,它修复了64位模式。
为了澄清,我右键单击Visual Studio x64 Win64 Command Prompt (2010)
并select以pipe理员身份运行。 然后我去了这里:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319
这样做: aspnet_regiis -i
现在它完美的工作。
还要确保你的configuration文件有下面这行,否则路由将无法工作。
<system.webServer> <modules runAllManagedModulesForAllRequests="true"/> </system.webServer>
另外要注意的是,确保您的应用程序池被设置为集成,而不是经典
不要使用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>
我在IIS8 / Windows Server 2012上遇到了同样的问题。
dism /online /enable-feature /featurename:IIS-ASPNET45 /All
没有“/所有”开关,它抱怨父function没有安装。
奇怪的是,根据Windows' 打开或closuresWindowsfunction设施,asp.net 4.5已经安装。
没有必要对web.config进行任何更改,添加或删除模块。
我一直使用VS 2008中的自定义服务器设置,这仍然允许我debugging没有问题。 不知道2010年的情况是否会有所不同
我有这些症状; 我的Global.asax
崩溃了。 修复了崩溃,现在一切正常。
- 什么是Web.Debug.config和Web.Release.Config文件?
- ASP.NET MVC – 在视图或控制器中获取当前区域名称
- ASP.Net MVC – 从HttpPostedFileBase中读取文件而不保存
- 在Application_BeginRequest中设置会话variables
- 在ASP.NET MVC中使用Tempdata – 最佳实践
- Python与C#/ .NET – 使用开发大型Web应用程序时需要考虑哪些关键差异?
- ASP.NET MVC 2.0 JsonRequestBehavior全局设置
- ModelState.AddModelError – 如何添加一个不属性的错误?
- validation:如何使用Ninject注入模型状态包装器?