在Windows Server 2008 R2上将ASP.NET MVC 5应用程序部署到IIS 7.5

时间:2016-03-15 16:58:52

标签: asp.net-mvc asp.net-mvc-5 iis-7.5 .net-4.5 windows-server-2008-r2

我一直在尝试许多不同的东西让我的MVC 5应用程序在Windows Server 2008 R2 IIS 7.5上运行,但无论我做什么,网站加载都没有错误,只是加载一个空白的白页。 服务器安装了最新版本的.NET, 我已将所有程序集添加到'bin'文件夹,我在Web.Config文件中添加了依赖项,尝试使用IIS应用程序池中的各种设置,我甚至将我的MVC应用程序添加为IIS上的自己的站点。 / p>

当我创建测试MVC 4应用程序并发布它时,该网站开箱即用。似乎任何使用.NET 4.0及以下版本的工作都很好,但是上面的任何版本都没有。

我觉得我已经阅读了每一篇Stack Overflow帖子,网络上的每篇文章以及关于这个问题的每篇微软帖子,但没有得到任何结果。

**** 更新 ****

我发现当我在MVC 5应用程序上输入基于MVC URL /路由约定(例如/ Home / About)的URL时,它会给我一个HTTP 404错误,但当我使用相同的URL时MVC 4应用程序,它转到正确的页面。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,最终我做了与OP类似的事情(我怀疑他现在已经解决了问题)。我创建了一个测试应用程序,并且可以在没有特殊处理程序或其他任何东西的情况下与IIS 7.5一起使用。这是在Server 2008 R2 IIS 7.5中安装的所有内容(ASP.NET等)。应用程序池设置为集成和.NET 4.0。我不需要添加特殊处理程序。一旦有了一个已知的好应用程序,我就通过了坏应用程序的web.config,并将代码从好应用程序复制到了坏应用程序。

我相信但不确定这是正确的部分。它存在于错误的配置中,但没有出现在良好的配置中。

 <handlers>
      <remove name="MvcResourceHandler" />
      <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" />
    </handlers>