HTTP错误404.17 - 未找到请求的内容似乎是脚本,静态文件处理程序不会提供

时间:2014-03-03 06:16:45

标签: c# asp.net iis-7

我从bigrock购买托管服务 当我运行简单的aspx页面时发生此错误

HTTP错误404.17 - 未找到 请求的内容似乎是脚本,静态文件处理程序不会提供。 详细的错误信息 模块StaticFileModule 通知ExecuteRequestHandler 处理程序StaticFile 错误代码0x80070032 请求的网址http://demo.com:80/demo/default.aspx 物理路径C:\ Inetpub \ vhosts \ demo.com \ httpdocs \ demo \ default.aspx 登录方法匿名 登录用户匿名 最有可能的原因是:

The request matched a wildcard mime map. The request is mapped to the static file handler. If there were different pre-conditions, the request will map to a different handler.

你可以尝试的事情:

If you want to serve this content as a static file, add an explicit MIME map.

3 个答案:

答案 0 :(得分:7)

这是因为IIS中没有正确配置.Net。

我在IIS下的Windows Server 8中遇到过这种情况 - 即使安装了.Net 3.5(因此2.0)IIS配置不正确 - 因此静态文件处理程序试图处理.aspx请求 - 导致此错误。

修复很简单:

启动命令提示符 - 启动 - cmd.exe cd C:\ Windows \ Microsoft.NET \ Framework64 [Dot Net Version] aspnet_regiis -ir 您应该看到如下输出:

开始安装ASP.NET [Dot Net Version]。 ................ 完成安装ASP.NET [Dot Net Version]。

此时如果刷新页面,它应该可以正常工作。

答案 1 :(得分:2)

我们的修复是手动编辑IIS配置编辑器中的system.webServer/handlers,并将 .NET 2 ISAPI模块替换为 .NET 4 ISAPI模块

applicationHost.config Before(system.webServer/handlers

<add name="AboMapperCustom-396397" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" requireAccess="None" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />

applicationHost.config After(system.webServer/handlers

<add name="AboMapperCustom-356384" path="*" verb="*" modules="IsapiModule" scriptProcessor="c:\windows\microsoft.net\framework64\v4.0.30319\aspnet_isapi.dll" requireAccess="None" responseBufferLimit="0" />

基本上它是通过错误的ISAPI模块运行应用程序 - 即使我们在应用程序池中正确指定它。

我们还必须启用 .NET 4 ISAPI模块 - 它已由之前的管理员关闭。

备用解决方案 - 应用程序池配置错误

当.NET 2.0应用程序(经典模式)提供.NET 4(集成模式)内容时,我们也会看到同样的错误。将应用程序池 v2.0 切换为 v4.0 修复了此问题。同样的问题也可能来自应用程序池 v1.1 错误分类为 v2.0

答案 2 :(得分:1)

此问题的更好解决方案通常如下:

WCF映射未在IIS中注册。 导航到

"C:\Windows\Microsoft.NET\Framework\v3.0\Windows Communication Foundation" and execute 

"servicemodelreg -i" to install them manually.