iis php 0x80070032,访问网站时 HTTP 错误 404.17 - Internet Information Services | Microsoft Docs...

访问在 IIS 7.0 或更高版本上承载的网站时出现错误消息:HTTP 错误 404.17 - 未找到

12/11/2020

本文内容

本文可帮助您解决 HTTP 错误 404.17 - 当您访问在 Internet Information Services (IIS) 7.0 或更高版本上承载的网站时找不到问题。

原始产品版本:   Internet Information Services

原始 KB 编号:   2019689

症状

您具有在 IIS 7.0 或更高版本上承载的网站。 当您使用 Web 浏览器浏览到网站中的动态内容时,您可能会收到类似于以下内容的错误消息:

错误摘要

HTTP 错误 404.17 - 未找到

请求的内容显示为脚本,不会由静态文件处理程序提供。

详细的错误信息:

Module StaticFileModule

Notification ExecuteRequestHandler

Handler StaticFile

错误代码 0x80070032

请求的 URL http://iisserver:80/page.aspx

物理路径 C:\inetpub\wwwroot\page.aspx

登录方法匿名

登录用户匿名

原因

发生此错误的原因是,配置为处理请求的 HTTP 处理程序设置了某些先决条件,但其应用程序池不符合某些或所有这些先决条件。 这将导致静态文件处理程序用于处理请求。 然后,处理请求失败,并返回 404.17 状态,因为请求针对的是动态资源,而不是静态资源。

例如,请考虑以下处理程序映射:

在这种情况下,如果在未在模式运行的应用程序池中处理正在请求的 *.aspx 资源、未在 32 位或未运行 2.0 版本的 .NET Framework,则返回 404.17 错误。 Classic 为了使本例中能够正确提供资源,必须满足所有三个条件。 具体而言,承载此资源的 应用程序池 必须配置为 Mode,需要配置为使用 Classic 2.0 版的 .NET Framework,并且需要为 32 位应用程序设置它。

解决方案

若要解决此问题,请配置承载应用程序的应用程序池,以满足为处理程序设置的所有预条件。

打开 IIS 管理器

展开计算机名称 ,然后单击左 窗格中的应用程序池。

在中间窗格中突出显示承载资源的应用程序池。

在最右边的窗格中,单击 "高级设置..."。

在 "常规 ( 类别下的"高级) ,配置以下设置以匹配处理程序要求:

.NET Framework 版本

启用 32 位应用程序

托管管道模式

更多信息

本节中的信息用于帮助确定为错误中提到的网站和应用程序配置哪些处理程序,并帮助标识为该处理程序配置的预条件。

Appcmd.exe命令

以下命令可用于标识为错误输出中列出的网站配置的处理程序。

列出应用程序池

以下命令显示如何确定应用程序应用程序池,然后列出为该应用程序配置的先决条件应用程序池。

C:\Windows\System32\inetsrv>appcmd.exe list apps /site.name:"Default Web Site"

APP "Default Web Site/" (applicationPool:DefaultAppPool)

C:\Windows\System32\inetsrv>appcmd.exe list apppools

APPPOOL "DefaultAppPool" (MgdVersion:v2.0,MgdMode:Integrated,state:Started)

列出处理程序

此命令将输出为默认网站中的特定应用程序配置的处理程序。

C:\Windows\System32\inetsrv>appcmd.exe list config "Default Web Site/application" -section:handlers

对于配置ASP.NET,可能为 *.aspx 资源配置了许多处理程序。 在某些情况下,可能只需更改处理程序,应用程序池应用程序运行中的处理程序。 下面是不同的 2.0 ASP.NET及其各种预条件设置的列表。

ASP.NET 2.0 集成模式 32/64 位处理程序

type="System.Web.UI.PageHandlerFactory" preCondition="integratedMode" />

ASP.NET 2.0 经典模式 32 位处理程序

scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness32"

responseBufferLimit="0" />

ASP.NET 2.0 经典模式 64 位处理程序

modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll"

preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />

重现步骤

创建包含两个文件的目录。

包含内容的 Test.aspx

Web.config 内容:

创建指向包含这两个文件的目录的 IIS 7.0 或更高版本的应用程序。

将新应用程序配置为在配置为应用程序池模式配置的应用程序中运行。

浏览 到 test.aspx。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值