2011-01-04 33 views
4

IIS7で約2か月間実行されているWebサイトがあります。ユーザーがページのないドメインに移動するとdefault.aspページを読み込むように既定のドキュメントが設定されています。突然今朝、エラーが発生し、デフォルトのドキュメントが読み込まれません。私がdefault.aspと入力すると、ファイルは正常に読み込まれます。DefaultDocumentが突然IIS7で動作しない

エラー情報:
モジュール:DefaultDocumentModule
通知:ExecuteRequestHandler
ハンドラ:StaticFileは
エラーコード:0x80070002が

ここに私の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> 

私はモジュールがディスク上に物理的に存在することも確認しました。私はこのサーバー上の変更を認識していないし、デフォルトのドキュメントは間違いなく昨日まで働いています。サーバーはWindows Server 2008 x64(IIS 7.0)です。

私はアプリケーションプールをリサイクルし、サーバーを起動し、削除してデフォルトのドキュメントに再入力しました。エラーは、デフォルトのドキュメントモジュールを見つけることができないように見えます。

他に何を試すことができますか?

+0

プロセスモニタhttp://technet.microsoft.com/en-us/sysinternals/bb896645を実行してから、IISを再起動してページにアクセスしましたか?それはあなたが読んで失敗しようとしている正確な経路を示すはずです。 (あなたが知っているように見えるので、0x80070002 == ERROR_FILE_NOT_FOUND。) – Rup

+0

私はプロセスモニターを見ていますが、そこにはたくさんのものがあります。私は何を見るべきか分かりません。あなたは私を助けることができます?私はプロセス名= "w3wp.exe"のフィルタを入れ、結果は "成功"ではありません。まだ1秒間に数百のヒットを得る。これは本番Webサーバー上にあります。操作をフィルタリングすべきか、制限する他の方法があるので、何を探すべきか分かっていますか? – Stephen

+0

BTW - iisがすべてのリクエストの最後に\ web.configを追加するように見えますか?それは普通ですか?私はdefault.aspを使って移動しようとしているパスを見ていますが、そのページにアクセスする直前にdefault.asp \ web.configが試されます。すべてのファイルに対してこれを行い、PATH NOT FOUNDを返します。 – Stephen

答えて

7

私の同僚と私はこれを毎朝追いかけており、IRCの誰かが解決策を指摘しました。 IISが、Webサイトのルートフォルダが隠しとしてマークされている既定のドキュメントb/cに問題があることが判明しました。どうやら、フォルダが非表示になっていると、デフォルトのドキュメントモジュールはそれを見つけることができず、上記のERROR_FILE_NOT_FOUNDを取得します。
WebルートフォルダをHiddenに設定し、既定のドキュメントで十分なエラーが発生していることを確認して、Devサーバーでこの動作を確認しました。隠し属性が削除され、既定のドキュメントが正しく読み込まれます。

私は今日これについて多くの質問を見ており、私たちの問題に合った回答は誰も投稿していません。それがIRCにあった人に感謝したいと思います!そしてうまくいけば、これは他の人がここに投稿するのを助けるでしょう。

+0

詳細:http://mylhat.com/blog/2010/05/0x80070002-for-defaultdocumentmodule/ – Stephen

関連する問題