我在 Visual Studio 2008 中创建了一个 ASP.NET MVC 2 应用程序。我将发布版本设置为通过 ASP.NET 编译器来预编译所有视图、缩小 Javascript 和 CSS、清理 web.config 等。部署将转到 IIS6 服务器,我在我的 Windows 7 机器上设置了我的伪生产部署,以使应用程序池以针对 2.0 运行时的经典模式运行。我在 web.config 中设置了必要的无扩展处理程序,并且一切正常。
当我将解决方案升级到 Visual Studio 2010 时,问题就出现了。 我仍然以 3.5 框架为目标,但现在我使用的是 MSBuild 4.0,因为这是 Visual Studio 2010 使用的。一切仍然可以正确编译,因为它在 Cassini 下运行良好,但是当我将它部署到相同的位置(相同的应用程序池、身份等)时,它现在的行为有所不同。我在 web.config 中仍然有无扩展处理程序,但是现在当我导航到应用程序的根目录时,它会进行目录浏览,并且以前处理过的任何路由现在都返回为 404 错误,由 IIS 中的 StaticFile 处理程序处理. 我不知道发生了什么变化并导致了中断。
我看过这个问题,但我已经验证了所有必备组件都已安装。