0

ASP.Net ランタイム コンパイルで問題が発生しています。

IIS の開始時 (および再起動後) に、ユーザー コントロールとレイアウトは問題なく正常にコンパイルされます。しかし、ライフサイクルのある時点で、ランタイム コンパイルは機能しなくなります。IIS プロセスを再起動すると、再び機能します。

無数のさまざまな投稿を検索した後、追加のデバッグを行いましたが、問題の原因についてはまだ困惑しています.

これを要点に留めるために、私たちが行ったすべてのテストの説明をスキップし、エラーの核心に最も近いと思われるものにジャンプします。

ここでは、compilation.tempDirectory をこの Web アプリケーション専用のカスタム フォルダーに切り替え、procmon を設定して、このフォルダー内のすべてのファイルの変更を表示します。エラーが発生し始めると、一時ファイルが実際にこのドライブに書き込まれ、csc.exe が開始されていることがわかります (この間、conhost.exe、CcmExec.exe および他の多くのプロセス)。procmon にエラーは表示されません。ただし、csc.exe の実行後、コンパイル済みのバージョンを残さずに一時ファイルを削除します。(また、asp.net エラー画面には、csc.exe が失敗したことが示されていますが、何が失敗したかは正確にはわかりません)。一時ファイルはすべて作成されます (結果の dll を除く) - .0.cs、.1.cs、.tmp、.cmdline、.out、.err はすべて短時間存在します。しかし、作成直後にそれらはすべて再び削除され、アプリケーションはそれらを見つけることができません。

プロセスがしばらく実行された後、これが失敗する原因について何か手がかりはありますか? IIS の再起動直後に実行すると、まったく同じファイルが正常にコンパイルされますが、しばらくすると、ランタイム コンパイル中に何かが失敗し、ASP/w3wp/csc プロセスによって一時ファイルのすべての兆候が削除され、作成されません。 dll、および機能を失敗させます。

4

1 に答える 1