在Windows Server 2008上部署MVC 5应用程序时出错

时间:2015-06-15 06:49:54

标签: asp.net-mvc iis iis-7 asp.net-mvc-5 windows-server-2008

我已经发布了我的MVC 5应用程序并将所有文件从本地PC复制​​到Server D驱动器。

服务器是Windows Server 2008 SP1。

我在服务器上安装了.NET Framework 4.5。

我在集成模式下使用.NET Framework 4.0创建了一个单独的应用程序池。

在IIS中,我右键单击“站点”并选择“新建网站”。

在物理路径中,我指向发布文件所在的服务器上的相同D驱动器。

当我尝试浏览时,它会出错:

  

未配置默认文档。

这是因为未安装Windows Server Service Pack 2吗?是否需要SP2用于MVC 5应用程序?

我还通过运行:

注册了ASP.NET 4.0
aspnet_regiis -i
从命令提示符

1 个答案:

答案 0 :(得分:0)

在Windows Server 2008 R2上部署有关无扩展名网址的MVC应用程序时,这是一个已知问题:您可以在本文中找到更多信息:

http://blogs.msdn.com/b/tmarq/archive/2010/04/01/asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting-static-requests.aspx

您需要在此链接中运行Microsoft的修补程序: https://support.microsoft.com/en-us/kb/980368

然后在web.config文件中添加以下内容:

<handlers>
      <remove name="WebDAV" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
      <remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
      <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
      <add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
    </handlers>