2011-11-10 10 views
0

私はちょうど私たちのサーバー上のWindowsスケジュールされたタスク(それはデータベース内の何かを更新する)として2日に1日2回実行するために配備されたコンソールアプリケーションのソースコードを開いた。デプロイされていたときはうまく動いていましたが、コードを変更する必要があります。私はデバッグでそれを実行しようとすると、プログラムはサブメインに入ることさえできません。それはラインを打つメインを実行していない.NET Consoleアプリケーションが終了するのはなぜですか?

静的無効Main(string [] args)そしてちょうど実行を終了します。コンソールウィンドウが消えます。私は、プロダクションバージョンが実行されていないことをクライアントから聞いたことはありませんが、サーバーをチェックすると、実行するたびにイベントログに書き込むはずのイベントログエントリは表示されません)

+2

[出力]ウィンドウには何が表示されますか? –

+0

.NETのどのバージョン用に書かれましたか?作業しているマシンで実行中のバージョンと失敗しているバージョンは何ですか? – Oded

+1

デバッガで例外が表示されますか? – SLaks

答えて

3

これはおそらくDLLの問題です。

Main()は、JITterが見つからないアセンブリの種類を使用する場合、プログラムはMain()を打つ前に終了します。
Main()を含む型に、ロードできなかった型のフィールドがある場合にも発生します。

また、その型の静的コンストラクタがEnvironment.FailFast()を呼び出すと発生する可能性があります。

+0

try-catchブロック内の元のMainを単に呼び出す独自のMainメソッドを持つ空の2番目のクラスを作成すると、デバッグが容易になる場合があります。次に、2番目のクラスをスタートアップクラスとして設定します。 – Qwertie

0

また、アプリケーションを実行しているマシンに.NET Frameworkのバージョンが正しくない場合に発生します。 ターゲットフレームワークのバージョンを、コンパイル時に変更した可能性があります。

関連する問題