2010-12-05 10 views
0

プロダクションサーバーで.NET 4.0コンソールアプリケーションを実行しています。アプリケーションは、アドホックベースで実行され、デバッグビルドとしてコンパイルされ、すべてのデバッグシンボルがexeでサーバーに送信されます。デバッグを正常に動作させることができません。.NET 4.0、Windows 2003サーバー

アプリで例外が発生した場合、古いコンソールアプリのように重大な問題が発生し、スタックをコンソールに出力することが予想されます。代わりに、私が見る振る舞いはこれです:

  1. JITデバッガウィンドウが表示され、デバッグを求められます。
  2. 私が "はい"と答えると、VS 2005の非常に限定されたバージョンが起動します。私はアセンブリ言語にダンプされ、ソースコードまたはファイルの名前を見ることができません。これは、スタックトレースのすべてのレベルで発生します。
  3. 私が「いいえ」と言うと、コンソールに何も情報が書き込まれません。

私はこれをpowershellシェルと従来のcmdコンソールの両方で同じ効果で実行し​​ようとしました。

サーバーはASP.NET 4.0を実行しており、これらのエラーをブラウザに返すことは問題ありません。

私が望むのは、実際のエラーと、JITがポップアップしないでコンソールに印刷されたスタックを簡単に見ることです。グローバルなキャッチ&ライトを除いて、私の選択肢は何ですか?

+0

あなたがアカウントで実行されています管理者権限? – Oded

+0

クラッシュダンプの生成方法については、http://stackoverflow.com/questions/4346970/how-to-capture-a-running-net-process-to-disk/4350019#4350019への私の回答を参照してください。デバッガで検査されます。 –

+0

はい、アカウントは管理者です。 – roufamatic

答えて

1
using System; 

class Program { 
    static void Main(string[] args) { 
     AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException; 
     throw new Exception("test"); 
    } 

    static void CurrentDomain_UnhandledException(object sender, UnhandledExceptionEventArgs e) { 
     Console.WriteLine(e.ExceptionObject.ToString()); 
     Console.ReadLine(); 
     Environment.Exit(1); 
    } 
} 
+0

そうですね、私はこれを行うことができます。私は他のほとんどの環境でできるような失敗を単に見ることができない理由にもっと興味があります。 – roufamatic

+0

未処理の例外処理が.NET 4.0で変更されました。差を見るために3.5を目標にしてください。 –

+0

これ以上の時間を費やすことはできません。これで十分です。ありがとう。 – roufamatic

関連する問題