2

.net C# コンソール アプリケーション (サービスではない) があります。基本的に、Web サービスに接続し、いくつかの xml ファイルを取得し、それらのファイルをドライブ上のいくつかの場所にコピーし、xml を検証して処理し、これらのオブジェクトを別の Web サービスに送信します。

ただし、メイン メソッドが存在する (そしてコンソール ウィンドウが閉じる) 場合でも、タスク マネージャーでプロセスを確認できます。

メインメソッドのすべてをtryで囲み、ApplicationExceptionをキャッチしようとしましたが、アプリがクラッシュする理由については何も得られませんでした.

欠陥のある部品をどこからチェックし始めればよいか、誰にも手がかりがありますか?

4

5 に答える 5

4

スレッドの使用法と非同期呼び出しを見てください。

于 2008-10-16T16:25:23.123 に答える
2

コンソール ウィンドウが閉じている場合、プロセスがまだ実行されているのは非常に奇妙に思えます。Visual Studio デバッガーでアタッチできますか? (明らかにデバッグビルドです。)

まだ実行中の以前の実行ではありませんか?

于 2008-10-16T16:32:57.773 に答える
2

アプリをデバッグしている場合、Visual Studio がアプリに似た名前のホスト exe を最後に .vshost.exe で作成する状況を見てきました。これを使用してアプリを制御し、デバッグ エクスペリエンスを向上させます。このホスト exe は、プログラムのデバッグが終了した後も待機して待機し、新しいデバッグ セッションをすばやく開始できるように待機します。

ぶらぶらしているのはこのexeではありませんか?

デバッグせずにアプリケーションを実行した場合、まだぶらぶらしていますか?

于 2008-10-16T16:56:49.427 に答える
1

アプリケーションには、ほぼ確実に終了していないスレッドがあります。Jonが言ったように、デバッガーに接続して、どのスレッドが稼働しているかを確認します。

于 2008-10-16T16:47:21.427 に答える
1

他のすべての回答が示唆しているように、おそらく残留スレッドがあるが、必ずしも明示的に作成したものではないため、1つ以上のオブジェクトで Dispose または同様のものを呼び出す必要がある場合があります

于 2008-10-16T16:52:51.230 に答える