83

Windowsタスクスケジューラを介して実行しているC#アプリをいくつか作成しました。それらは正常に実行されていますが(ログファイルからわかるように)、Windowsタスクスケジューラは最後の実行結果を返すことを示しています0xE0434352。Windowsタスクスケジューラに成功コードを返すために、C#アプリケーションで行う必要があることはありますか?

4

12 に答える 12

102

もう 1 つのオプションは、Windows イベント ビューアからアクセスできるアプリケーション ログを使用することです。.Net エラーはアプリケーション ログに記録されます。

これらのイベントは次の場所で確認できます。

イベント ビューアー (ローカル) > Windows ログ > アプリケーション

于 2013-03-19T13:27:56.730 に答える
45

新しいウィンドウでジョブをセットアップする場合、「program/script」と「Start in(Optional)」の 2 つのフィールドがあります。プログラム名を最初に、プログラムの場所を 2 番目に入力します。これを行わず、プログラムが exe のあるディレクトリ以外で起動すると、そのディレクトリにあるファイルが見つかりません。

于 2015-01-08T22:11:56.650 に答える
26

Hans Passant は正しかったです。ここで説明されているように、AppDomain.CurrentDomain.UnhandledException のハンドラーを追加しましたhttp://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception(v=vs.71).aspx発生していた例外を見つけて修正できました。

于 2013-02-15T14:41:06.263 に答える
2

この問題は .Net フレームワークのバージョンが原因でした。ビルドをフレームワーク 4.0 にアップグレードしましたが、これはアプリケーションが使用していたいくつかの通信 dll に影響を与えているようです。フレームワーク 3.5 にロールバックしたところ、問題なく動作しました。

于 2014-08-13T09:23:44.820 に答える
2

同じエラーが発生しましたが、ファイルの読み取りパスを"ConfigFile.xml"から AppDomain.CurrentDomain.BaseDirectory.ToString() + "ConfigFile.xml"に変更して修正しました。

私の場合、タスクマネージャは初期パスとして「System32」からプログラムを開始するため、ファイルパスエラーが原因でこのエラーが発生しましたが、フォルダは想定していました。

于 2016-02-16T01:09:41.320 に答える