解决:Http错误404.17-Not Found无法由静态文件处理程序来处理
问题描述:
在环境(Windows7、64位系统、IIS7.5、VS2010开发项目)下,出现“HTTP错误 404.17 - Not Found 请求的内容似乎是脚本,因而无法由静态文件处理程序来处理”。
可能原因:
从错误的提示来看,应该是请求的页面(这里如:.aspx)不被IIS所识别,即IIS在解析页面时,找不到后缀为.aspx的页面对应的处理程序映射,那么很可能就是IIS的处理程序映射没有配置好。为了验证这个想法,我们可以在IIS中找到“处理程序映射”,双击就会显示处理程序映射列表。然后我发现,对.net framework 4.0的处理程序映射都没有,只有2.0的配置,那么我想只需要将4.0的配置加进去即可。
解决方案:
在上面“可能的原因”里面,我们确认了是缺少.net framework 4.0处理程序映射的原因,那么接下来,只需要解决这个问题即可。当然,手动添加模块映射可以解决问题,但为了省事,同时又命名规范,我们可以通过使用ASP.NET IIS注册工具(aspnet_regiis.exe)来快速处理,步骤如下:
在开始菜单-->所有程序-->Microsoft Visual Studio 2010-->Visual Studio Tools-->Visual Studio 命令提示(2010),输入以下命令:aspnet_regiis.exe -r ,如下图所示:
注册完以后,我们再次查看一下处理程序映射列表,我们发现现在.netframe work 4.0的扩展映射都自动加进来了。
再次测试,发现问题解决(如果没效果,重启一下IIS再测试一下)。
扩展阅读: