ASP.NET MVC已部署的应用程序找不到视图(HTTP 403)

问题描述:

我试图将第一个MVC应用程序部署到现有的生产服务器。该应用程序在Visual Studio调试模式下工作,但在服务器上,如果我尝试调用我的主路径,则会出现HTTP 403错误,除非我在IIS中启用目录浏览,在这种情况下,我会看到目录的内容,可能期望。ASP.NET MVC已部署的应用程序找不到视图(HTTP 403)

服务器运行的是Windows Server 2008,与我的开发计算机位于同一个域中。

我迄今为止尝试:

  • 证实.NET框架4.5已通过检查注册表中描述here安装在服务器上。
  • 使用“添加应用程序”在IIS管理器树中创建了一个新节点。
  • this helpful post中所述,使用aspnet_regiis.exe升级应用程序节点。
  • 设置应用程序允许匿名身份验证,以确保问题不被认证错误引起的。
  • 确认我的Views文件夹和服务器上的内容存在,如here所述。
  • 通过复制我的整个Visual Studio项目到服务器上的应用程序文件夹已尝试部署。
  • 试图通过右键单击并选择从在Visual Studio 2013的解决方案资源管理器中的项目节点发布部署。选择“在发布之前删除所有现有文件”。无论是否有“发布时的预编译”,我都这样做了。

任何想法来检查下?

我终于修改了我的Web.config文件,添加了下面两行引用UrlRoutingModule的问题。做不是添加preCondition="managedHandler"属性!

<configuration> 
    <system.webServer> 
    <modules> 

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

    </modules> 
    </system.webServer> 
</configuration> 

This helpful post by Thomas Marquardt详细讨论了MVC路由。另外,如果您正在解决您自己的MVC路由问题,请务必检查Ferruccio发布的答案,并取而代之。

您还需要在服务器上安装MVC框架。

http://www.asp.net/mvc/mvc4

+0

谢谢,我认为这可能正是我的问题。我开始从http://www.asp安装。net/mvc/mvc5,但安装想要添加SQL Server Express。是否有服务器安装程序不包含仅在Visual Studio中有用的部分? – Tim

+0

我没有太多的经验与5,但这里是一个独立安装程序的链接...希望这可以帮助。 http://www.microsoft.com/en-us/download/details.aspx?id=30683 – stead

+0

这是否适合您? – stead

我有类似的问题。事实证明,部署过程将其放入使用.NET 2.0的DefaultAppPool中。一旦我将它移动到“ASP.NET v4.0”应用程序池中,它就开始工作。

在IIS管理器中,右键单击该应用程序并选择“管理应用程序”。然后选择“高级设置...”并更改应用程序池。

+0

忘了提及我曾试过这个,但你的答案肯定会帮助别人!谢谢! – Tim