Iis 7 DefaultDocument突然无法在IIS7上工作

Iis 7 DefaultDocument突然无法在IIS7上工作,iis-7,document,default,Iis 7,Document,Default,我有一个网站已经在IIS7上运行了大约2个月。我们将默认文档设置为当用户进入没有页面的域时加载default.asp页面。今天早上,我突然出现错误,默认文档将无法加载。如果我键入default.asp,则文件可以正常加载 错误信息: 模块:DefaultDocumentModule 通知:ExecuteRequestHandler 处理程序:静态文件 错误代码:0x80070002 以下是my applicationhost.config中的一节: <system.webServer>

我有一个网站已经在IIS7上运行了大约2个月。我们将默认文档设置为当用户进入没有页面的域时加载default.asp页面。今天早上,我突然出现错误,默认文档将无法加载。如果我键入default.asp,则文件可以正常加载

错误信息:
模块:DefaultDocumentModule
通知:ExecuteRequestHandler
处理程序:静态文件
错误代码:0x80070002

以下是my applicationhost.config中的一节:

<system.webServer>

    <asp>
        <cache diskTemplateCacheDirectory="%SystemDrive%\inetpub\temp\ASP Compiled Templates" />
    </asp>

    <defaultDocument enabled="true">
        <files>
            <clear />
            <add value="Default.asp" />
            <add value="Default.htm" />
            <add value="index.htm" />
            <add value="index.html" />
            <add value="iisstart.htm" />
        </files>
    </defaultDocument>

    <directoryBrowse enabled="false" />

    <globalModules>
        <add name="UriCacheModule" image="%windir%\System32\inetsrv\cachuri.dll" />
        <add name="FileCacheModule" image="%windir%\System32\inetsrv\cachfile.dll" />
        <add name="TokenCacheModule" image="%windir%\System32\inetsrv\cachtokn.dll" />
        <add name="HttpCacheModule" image="%windir%\System32\inetsrv\cachhttp.dll" />
        <add name="StaticCompressionModule" image="%windir%\System32\inetsrv\compstat.dll" />
        <add name="DefaultDocumentModule" image="%windir%\System32\inetsrv\defdoc.dll" />
        <add name="DirectoryListingModule" image="%windir%\System32\inetsrv\dirlist.dll" />
        <add name="ProtocolSupportModule" image="%windir%\System32\inetsrv\protsup.dll" />
        <add name="HttpRedirectionModule" image="%windir%\System32\inetsrv\redirect.dll" />
        <add name="ServerSideIncludeModule" image="%windir%\System32\inetsrv\iis_ssi.dll" />
        <add name="StaticFileModule" image="%windir%\System32\inetsrv\static.dll" />
        <add name="AnonymousAuthenticationModule" image="%windir%\System32\inetsrv\authanon.dll" />
        <add name="RequestFilteringModule" image="%windir%\System32\inetsrv\modrqflt.dll" />
        <add name="CustomErrorModule" image="%windir%\System32\inetsrv\custerr.dll" />
        <add name="HttpLoggingModule" image="%windir%\System32\inetsrv\loghttp.dll" />
        <add name="RequestMonitorModule" image="%windir%\System32\inetsrv\iisreqs.dll" />
        <add name="IsapiModule" image="%windir%\System32\inetsrv\isapi.dll" />
        <add name="IsapiFilterModule" image="%windir%\System32\inetsrv\filter.dll" />
        <add name="CgiModule" image="%windir%\System32\inetsrv\cgi.dll" />
        <add name="FastCgiModule" image="%windir%\System32\inetsrv\iisfcgi.dll" />
        <add name="ManagedEngine" image="%windir%\Microsoft.NET\Framework\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness32" />
        <add name="ConfigurationValidationModule" image="%windir%\System32\inetsrv\validcfg.dll" />
        <add name="ManagedEngine64" image="%windir%\Microsoft.NET\Framework64\v2.0.50727\webengine.dll" preCondition="integratedMode,runtimeVersionv2.0,bitness64" />
        <add name="RewriteModule" image="%SystemRoot%\system32\inetsrv\rewrite.dll" />
        <add name="ManagedEngineV4.0_32bit" image="C:\Windows\Microsoft.NET\Framework\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness32" />
        <add name="ManagedEngineV4.0_64bit" image="C:\Windows\Microsoft.NET\Framework64\v4.0.30319\webengine4.dll" preCondition="integratedMode,runtimeVersionv4.0,bitness64" />
        <add name="WebDAVModule" image="%SystemRoot%\system32\inetsrv\webdav.dll" />
        <add name="WindowsAuthenticationModule" image="%windir%\System32\inetsrv\authsspi.dll" />
    </globalModules>

我还验证了这些模块实际存在于磁盘上。我不知道这台服务器上有什么变化,默认文档肯定一直在运行到昨天。服务器是带有IIS 7.0的Windows Server 2008 x64

我已经回收了应用程序池,启动了服务器,删除并重新输入了默认文档。错误看起来好像找不到默认文档模块


还有什么我可以试试的?

我和我的同事整个上午都在关注这个问题,IRC上有人向我们指出了解决方案。原来IIS在默认文档b/c上遇到了问题,网站根文件夹被标记为隐藏。显然,当文件夹被隐藏时,默认文档模块找不到它,您会得到上面显示的错误文件。
我们在Dev服务器上通过将web根文件夹设置为Hidden来验证此行为,并确保默认文档也出现了相同的错误。删除了隐藏属性并正确加载了默认文档


今天我看到了很多关于这方面的问题,没有人给出适合我们问题的答案。我想对IRC上的人说声谢谢!希望这将有助于其他人将其发布到此处。

您是否尝试过运行Process Monitor,然后重新启动IIS并访问该页面?这将向您显示它试图读取但失败的确切路径。(正如您所知,0x80070002==错误文件未找到。)我正在查看进程监视器,但其中有太多内容。。我不知道该看什么。你能帮我吗?我为processname=“w3wp.exe”设置了一个过滤器,结果不是“SUCCESS”。每秒仍有数百次点击。这在生产web服务器上。我应该对操作进行筛选,还是有其他方法进行限制,以便我知道要查找什么?顺便说一句-看起来iis在每个请求的末尾都添加了一个\web.config??这正常吗?我用default.asp看到了我试图进入的路径,但就在它访问该页面之前,它尝试了default.asp\web.config。它会对每个文件执行此操作,每次返回未找到的路径。。