私は、サードパーティDLLを使用してユーザーがWebフォーム経由でPOSTしたデータを処理するASP.NET(C#)Webサイトを持っています。呼び出しはかなり簡単です。(私のホスティングプロバイダのログによる)参照されたライブラリによってCPU負荷が100%検出されました
string result = ThirdPartyLib.ProcessData(myString);
一度ブルームーンでこのライブラリがハングアップし、CPUの100%を消費します。このWebサイトは共有ホスティングでホストされているため、IISまたはイベントログへのアクセス権はありません。これが起こると、私のウェブサイトはホスティングプロバイダのパフォーマンスモニタによって自動的に停止され、私は手動でそれを元に戻します。
今、正しいことが問題を調査し、DLLを修正(または置き換え)することがわかっています。しかし、それはサードパーティのソフトウェアであるため、私はそれを修正するのが難しく、彼らのサポートはまったく役に立たない。また、私は問題を再現できません。ライブラリの交換も苦痛です。
このDLLが100%CPUを使い始め、ASP.NETコードからプロセスを自動的に終了させる方法をC#で検出する方法はありますか?
は 'ThirdPartLib.ProcessData(myString)'です。メソッド/クラスのシグネチャはパブリッククラスかスタティッククラスかを知っていますか?あなたはサードパーティのデバッグ/コードを修正することができますか? 3パートクラスオブジェクトのインスタンスをどのように消費/インスタンス化しているかを示すことができますか? – MethodMan
@MethodMan、 'それはパブリッククラスか静的なクラスなのですか?'これは、パラメータのない単一のctorと私が呼び出す必要のある単一のメソッドを持つpublic非staticクラスです。 '問題が解決されているか' libはIDisposableクラスを公開していません。 「第三者にコードをデバッグ/修正することはできますか?」答えは「はい」よりも「いいえ」に近い。私が修正を得ることができれば、私は明らかにそれを使用するでしょう。 「インスタンスを消費/インスタンス化する方法を示すことはできますか?」何も表示されません。 libのpublicメソッドは明白であり、それらを誤って使用する方法はありません。 –