web-dev-qa-db-ja.com

C#アプリケーションがWindowsタスクスケジューラに0xE0434352を返していますが、クラッシュしていません

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

64
Kynrek

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

78
voidmain

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

32
Dmitry Bosikov

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

23
Kynrek

マップされたドライブを参照していましたが、スケジュールされたタスクを実行しているユーザーアカウントでマップされたドライブを常に使用できるとは限らないため、\\IPADDRESSの代わりにMAPDRIVELETTER:と稼働しています。

12
RandyMorris

他の人に役立つ場合、タスクが実行されていたサービスが実行可能な場所への書き込み権限を持っていなかったときに、このエラーが発生しました。そこでログファイルを書き込もうとしていました。

7
MDave

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

2
user3936738

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

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

1
RUTIS

MVC 5を使用してdotNet Core 2.2内で同じメッセージメッセージを取得していましたが、Windowsイベントビューアーに何も記録されていませんでした。

Project sdkをMicrosoft.NET.Sdk.WebからMicrosoft.NET.Sdk.Razorprojects.csprojファイル内に表示)に変更したことがわかりました。私はこれを元に戻し、それはうまくいきました:)

1
MrBritton