首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IIS 7不提供默认文档

IIS 7不提供默认文档
EN

Stack Overflow用户
提问于 2011-08-04 21:21:10
回答 5查看 32.3K关注 0票数 20

我们在一些开发人员工作站上出现了问题:当访问一个没有文件名的(例如, http://localhost/)时,IIS 7返回一个404错误。每个人都在运行Windows7/IIS7.5和ASP.NET 4.0。应用程序池被配置为使用经典管道模式。

启用默认文档,并且default.aspx在默认文档列表中。

我启用了失败的请求跟踪,并在日志中看到了这一点:

代码语言:javascript
复制
OldHandlerName="", NewHandlerName="ExtensionlessUrl-ISAPI-4.0_64bit", 
  NewHandlerModules="IsapiModule", 
  NewHandlerScriptProcessor="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll", NewHandlerType=""

稍后,我看到这个IsapiModule拒绝了请求:

代码语言:javascript
复制
ModuleName="IsapiModule", Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="404",
  HttpReason="Not Found", HttpSubStatus="0", 
  ErrorCode="The operation completed successfully. (0x0)", ConfigExceptionInfo="" 

看起来,IIS认为没有扩展的4.0-64位应该处理请求。当我查看该模块的配置时,它会显示它应该匹配路径*.,所以我不明白为什么它不匹配路径。

从2005年起,谷歌搜索就出现了这篇文章发表在IIS.net论坛上。不幸的是,没有提供任何解决办法,只是承认这个问题。

当我更新我的应用程序池使用集成模式时,问题就消失了。不幸的是,它必须以经典模式运行。

我能做些什么让IIS再次服务器我们的默认文档?

EN

回答 5

Stack Overflow用户

发布于 2013-06-14 06:16:25

我解决了将"StaticFile“处理程序放在HandlerMapping中"ExtensionlessUrlHandler-*”前面的问题。

票数 15
EN

Stack Overflow用户

发布于 2014-01-06 14:02:48

我注意到当从应用程序池中删除托管.NET框架(4.0)时,它也为我解决了这个问题!

我们在IIS环境中根本不使用.NET!

票数 1
EN

Stack Overflow用户

发布于 2017-10-04 18:10:26

我在web.config URL重定向中使用以下规则作为解决办法:

代码语言:javascript
复制
 <system.webServer>
    <rewrite>
      <rules>
        <rule name="Default document rewrite" stopProcessing="true">
          <match url="^(.+/)?$" />
          <action type="Redirect" url="https://{HTTP_HOST}/default.aspx" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6948669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档