我们在一些开发者工作站上遇到了一个问题:当访问一个没有文件名的URL(例如http://localhost/)时,IIS 7会返回404错误。所有人都在运行Windows 7/IIS 7.5和ASP.NET 4.0。应用程序池配置为使用Classic管道模式。
默认文档已启用,并且default.aspx在默认文档列表中。
我启用了故障请求跟踪,并在日志中看到了这个:
稍后,我发现这个IsapiModule正在拒绝请求:
看起来IIS认为ExtensionlessUrl-ISAPI-4.0-64bit应该处理请求。 当我查看该模块的配置时,它显示应该匹配路径
谷歌搜索IIS.net论坛上的此帖子(2005年)。 不幸的是,没有提供解决方案,只是确认了问题。
当我将我的应用程序池更新为使用集成模式时,问题消失了。 不幸的是,它必须在经典模式下运行。
我该怎么做才能使IIS再次提供我们的默认文档?
默认文档已启用,并且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应该处理请求。 当我查看该模块的配置时,它显示应该匹配路径
*.
,所以我不明白为什么它没有匹配任何路径。谷歌搜索IIS.net论坛上的此帖子(2005年)。 不幸的是,没有提供解决方案,只是确认了问题。
当我将我的应用程序池更新为使用集成模式时,问题消失了。 不幸的是,它必须在经典模式下运行。
我该怎么做才能使IIS再次提供我们的默认文档?