【发布时间】:2011-08-04 21:21:10
【问题描述】:
我们的一些开发人员工作站出现问题:访问没有文件名的 URL(例如 http://localhost/)时,IIS 7 返回 404 错误。每个人都在运行 Windows 7/IIS 7.5 和 ASP.NET 4.0。应用程序池配置为使用经典管道模式。
启用默认文档,default.aspx在默认文档列表中。
我启用了失败的请求跟踪,并在日志中看到:
OldHandlerName="", NewHandlerName="ExtensionlessUrl-ISAPI-4.0_64bit",
NewHandlerModules="IsapiModule",
NewHandlerScriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll", NewHandlerType=""
稍后,我看到这个 IsapiModule 正在拒绝请求:
ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="404",
HttpReason="Not Found", HttpSubStatus="0",
ErrorCode="The operation completed successfully. (0x0)", ConfigExceptionInfo=""
看起来 IIS 认为 ExtensionlessUrl-ISAPI-4.0-64bit 应该处理请求。当我查看该模块的配置时,它显示它应该匹配路径*.,所以我很困惑为什么它没有匹配路径。
从 2005 年开始,Google 搜索出现了 this post on the IIS.net forums。不幸的是,没有提供任何解决方案,只是承认问题。
当我更新我的应用程序池以使用集成模式时,问题就消失了。不幸的是,它必须在经典模式下运行。
如何让 IIS 再次为我们的默认文档提供服务?
【问题讨论】:
-
了解您是否安装了 Windows7 SP1 或修补程序 KB980368。我对这个修补程序(已纳入 SP1)有一些恶作剧:stackoverflow.com/questions/5080837/…
-
@Kev 谢谢。您链接到的知识库文章似乎可以解释我遇到的问题。
-
奇怪,我遇到了同样的问题,但我的工作在经典模式下,但不是在集成模式下(我必须使用)。
-
我刚刚通过将应用程序池切换到集成模式解决了这个问题。
标签: iis-7.5