アプリ プールのリサイクルを行うまで、散発的に WebApi アプリケーションが動作しなくなります。
サイトが次の YSOD エラーでスタックします。
Detailed Error Information
Module: IIS Web Core
Notification: BeginRequest
Handler: Not yet determined
Error Code: 0x8007000d
Config Error: Configuration file is not well-formed XML
Config File: \\?\{PathToMyVirtualApplicationWebsiteHere}\web.config
Physical Path: {PathToMyVirtualApplicationWebsiteHere}
ここで最も奇妙な問題は、YSOD 構成ソースが空白として報告されることです。
Config Source
-1:
0:
XML web.config の形式が正しくない場合、通常、ここに xml の不正な行が表示されます。
根本的な原因と思われるもの - 毎日決まった時間に IIS をリサイクルする必要がありますが、うまくいかないようです:
- アプリケーションが異常であると報告しました。ワーカー プロセスは、リサイクルを要求します。理由: この特定の要求の失敗の原因を詳述するエラー メッセージは、Web サーバーのアプリケーション イベント ログにあります。このログ エントリを確認して、このエラーが発生した原因を特定してください。データはエラーです。
- 上記と同じ秒でリサイクルを行う「データはエラーです」イベントのトン以上
- 1秒後。メッセージ: タイプ 'System.OutOfMemoryException' の例外がスローされました。 System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() での System.Threading.ExecutionContext.Run(ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態、ブール値 preserveSyncCtx) での RunInternal (ExecutionContext executionContext、ContextCallback コールバック、オブジェクト状態、ブール値 preserveSyncCtx) ) System.Threading.ThreadPoolWorkQueue.Dispatch() で
- ~ 1 分後、Windows エラー報告が開始されます ... エラーが発生しているアプリケーション名: w3wp.exe
- その後、イベントログですべてが静かになります
私が確認したこと:
- ProcMon は {PathToMyVirtualApplicationWebsiteHere}\web.config へのアクセスを示していません
- App Pool Recycle は次回まで問題を修正します (すぐに停止/開始します)。
アップデート:
- IIS 7.5 用の Application Initialization 1.0 を Url Rewrite Module と組み合わせて使用しています ... これが適切にインストールされていない別のサーバーで、まったく同じエラーが発生します (ただし、メモリ不足の問題はありません)。