この問題を簡潔に説明することはできませんので、あいまいなタイトルで申し訳ありません。
基本的に、私はWindows Server 2008 x64、IIS7、ASP.NET 2.05を使用しており、Classic AppPoolで実行しているサイトを持っています(統合では実行できません)。
* .aspxファイルを初めてロードしようとすると(つまり、サイトのインストール後、サーバーの再起動後など)、次のエラーが発生します。
HTTPエラー500.0-
内部サーバーエラー内部サーバーエラーが発生したため、ページを表示できません。
モジュール:IsapiModule
通知:ExecuteRequestHandler
ハンドラー:PageHandlerFactory-ISAPI-2.0-64
エラーコード:0x800710dd
ログオン方法:匿名
ログオンユーザー:匿名
ハンドラーはデフォルトのIIS7のものです。
<add name="PageHandlerFactory-ISAPI-2.0-64" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv2.0,bitness64" responseBufferLimit="0" />
次のようなaspx用の独自のハンドラーを追加してみました。
<add name="aspx" path="*.aspx" verb="GET,HEAD,POST,DEBUG" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework64\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness64" />
唯一のことは、エラー通知のハンドラー部分をIsapiModuleに変更することでした。
奇妙なことに、このエラーは最初にのみ発生します(または、サーバーが何時間もアイドル状態になっている場合)。このエラーが表示されたらすぐに、ページを更新すると、すべて問題なく、再びダンディになります。
web.configファイルを削除しようとしましたが、まったく何もしませんでした。
私はインターネット上でこの問題に対する単一の答えを見つけることができないようです。
編集:失敗したリクエストの追跡を有効にしました。これが表示されます。
MODULE_SET_RESPONSE_ERROR_STATUS警告ModuleName="IsapiModule"、Notification = "EXECUTE_REQUEST_HANDLER"、HttpStatus = "500"、HttpReason = "Internal Server Error"、HttpSubStatus = "0"、ErrorCode = "操作識別子が無効です。(0x800710dd)"、ConfigExceptionInfo = ""
そして、エラーの直前にそれが表示されます:
NOTIFY_MODULE_START ModuleName = "IsapiModule"、Notification = "EXECUTE_REQUEST_HANDLER"、fIsPostNotification = "false"、fIsCompletion = "false"
これを成功した実行と比較すると、違いは、エラーがMODULE_SET_REPONSE_ERROR_STATUSを生成するのに対し、成功した実行は生成しないことです(その後、正しいHTML出力を生成します)。
編集:私は単純なアプリを取り、それを実行しようとしましたが、同じエラーが発生しました。しかし、アプリプールが統合モードの場合、正常に実行されました。残念ながら、指定できない理由でアプリを統合に移行できませんが、アプリプールに絞り込みました。また、エラーを再現するためにサーバーを再起動する必要はありません。代わりに、アプリプールをリサイクルします。
要約:
-以下で説明するように、イベントログには失敗を示すものは何もありません。イベントビューアですべてのログを調べました