我一直在尝试许多不同的东西让我的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应用程序,它转到正确的页面。
答案 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>