私たちの.netプロジェクトでは、サードパーティ独自のCLI DLLを参照しています。このDLLは、独自のC++ライブラリへのインターフェイスに過ぎません。私たちのプロジェクトはasp.net(MVC4/Web API)Webアプリケーションです。不安定なDLLの参照
C++アンマネージドライブラリは、むしろ不安定です。場合によっては、例えばぶら下がっているポインタ。私たちはそれを解決する方法がなく、このライブラリを使用することはファーストクラスの顧客要件です。
アプリケーションがクラッシュすると、IISのアプリケーションプールは応答しなくなります。私たちはそれを再起動しなければなりません。そうするには数分かかります。
この不安定なDLLがアプリケーションをクラッシュさせないようにします。それをする最善の方法は何ですか? CLI DLLを別のAppDomainに保存できますか?どうやって?
ありがとうございます。
あなたは何を観察しましたか?一定数のコールの後にプロセスがハングアップしますか?不安定なDLLにメモリリークがあると思われますか? – xpereta
今までメモリリークは問題ではありませんでした。開発中に、DLLがメモリアクセス違反で開発サーバーをクラッシュさせることがあります。場合によっては、プロセスを終了するまで、開発サーバーがCPUの約70%を使用することもあります。IISに展開すると、クラッシュやCPUの問題は実際にはあまり起こりませんが、IISプロセスが応答を停止し、IISの再起動に時間がかかります。 – Schiavini
IISプロセスのリサイクル率を上げようとしましたか? – xpereta