我在Windows 7和Windows Server 2008 R2上的IIS 7.5服务器上部署了这个相同的应用程序没有遇到任何问题。
在部署之前,2008服务器没有安装.NET 4.0或ASP.NET MVC 3,因此在部署应用程序之前,我采取了以下步骤:
1. 安装.NET 4.0 2. 运行aspnet_regiis.exe(来自Framework64/v4.0.30319文件夹) 3. 使用Web平台安装程序安装ASP.NET MVC 3 4. 应用MS更新KB980368以启用某些IIS 7.0或IIS 7.5处理程序来处理URL不以句点结尾的请求
应用程序中静态资源的请求(JavaScript文件、图像等)可以顺利进行,但对MVC操作的任何请求都会失败并出现404.0错误。我注意到IIS正在使用StaticFile处理程序来处理这些请求,这显然是不正确的。据我所知,ASP.NET 4.0处理程序(即ExtensionlessUrl-ISAPI-4.0*处理程序)已经正确定义,因此我不知道为什么/如何请求不会由其中一个处理程序处理,并且会一直落到StaticFile处理程序。
我还遇到了以下MS知识库文章,其中提到您应确保在您遇到404错误的服务器上启用/安装HTTP重定向和静态内容压缩。我检查过了,这两个功能已经在我的服务器上启用了。我甚至尝试删除并重新安装这些功能,但没有效果。
目前我完全没有想法为什么这不正常工作。我已经能够在两个不同的IIS 7.0服务器上复制该问题。我错过了什么?