2016-08-05 11 views
0

.NET 4.5.2(app1)を実行しているC#コンソールアプリケーションは、COMアプリケーション(app2)を開き、そのapp2のAPIで動作します。これまでのところすべての作業は成功しましたが、app1がapp2を終了しようとすると、app2が永続的にハングします。C#COMアプリケーションのクラッシュのデバッグ

app2のプロセスがタスクマネージャで終了した場合、app1はアクセス拒否を報告します。これは、終了したプロセスがもはや利用できないか、またはapp1のスレッドをブロックしていてスレッドが続行されるまでエラーを報告できなかったために発生しますか?

APP2を終了するために使用されるコードは

​​

このコードは、完了するまでに40秒よりもはるかに多くを取るべきではありませんが、多分、COM相互運用機能は、いくつかの予期しない動作を引き起こしていますか?

開発マシンでこのエラーを再現できません。正確な障害箇所を追跡する最良の方法は何ですか? CloseSWではなく、これより前のいくつかの点で障害が発生している可能性があります。各行をログファイルに書き込むよりもエラーをトレースする方が良いでしょうか?

このコードはエラーが発生する前に60〜150回実行され、各実行の間に両方のアプリケーションが閉じられることにも注意してください。

私はリモート環境を制御するので、リモートデバッグはオプションですが、これまでに設定したことはありません。

答えて

1

通常、COMインターセプトで問題を引き起こすのは、現在のISAPI.dllを使用しているオブジェクトでIISが問題を抱えていることです。現在のバージョンのIISで動作するようにアセンブリ内でアクセス許可が構成されていることを確認してください>

使用するフレームワークのバージョン、使用しているフレームワークのバージョン、使用しているアプリケーションプールフレームワークのために。 HTH

+0

この

は、コンソールアプリケーションは、.NET Framework 4.5.2 – Adam

+0

IISのターゲットフレームワークとは何かを実行していますか? – Programmer

+0

iisを使用していない、対象のフレームワークは4.5.2 – Adam

関連する問題