.NET 4.5.2(app1)を実行しているC#コンソールアプリケーションは、COMアプリケーション(app2)を開き、そのapp2のAPIで動作します。これまでのところすべての作業は成功しましたが、app1がapp2を終了しようとすると、app2が永続的にハングします。C#COMアプリケーションのクラッシュのデバッグ
app2のプロセスがタスクマネージャで終了した場合、app1はアクセス拒否を報告します。これは、終了したプロセスがもはや利用できないか、またはapp1のスレッドをブロックしていてスレッドが続行されるまでエラーを報告できなかったために発生しますか?
APP2を終了するために使用されるコードは
このコードは、完了するまでに40秒よりもはるかに多くを取るべきではありませんが、多分、COM相互運用機能は、いくつかの予期しない動作を引き起こしていますか?
開発マシンでこのエラーを再現できません。正確な障害箇所を追跡する最良の方法は何ですか? CloseSWではなく、これより前のいくつかの点で障害が発生している可能性があります。各行をログファイルに書き込むよりもエラーをトレースする方が良いでしょうか?
このコードはエラーが発生する前に60〜150回実行され、各実行の間に両方のアプリケーションが閉じられることにも注意してください。
私はリモート環境を制御するので、リモートデバッグはオプションですが、これまでに設定したことはありません。
この
は、コンソールアプリケーションは、.NET Framework 4.5.2 – Adam
IISのターゲットフレームワークとは何かを実行していますか? – Programmer
iisを使用していない、対象のフレームワークは4.5.2 – Adam