0

システムイベントログでこのエラーが驚くべき量で発生するのを見てきました. これは、同じマシン上で Web サービスを使用する非常に単純なコマンド ライン アプリ (文字通り 4 ~ 5 行の実際の処理コード) に関連しています。アプリケーションの構成を変更したところ、問題が解決したように見えましたが、元に戻りました。
エラーはイベント ビューアーにのみ表示され、次のようになります。

イベントの種類: エラー
イベント ソース: .NET ランタイム 2.0 エラー報告
イベント カテゴリ: なし
イベント ID: 5000
日付: 19/09/2011
時刻: 09:26:04
ユーザー: N/A
コンピューター: SQL
説明: EventType clr20r3、P1 estimatorcli .exe、P2 1.0.0.0、P3 4e410f1b、P4 mscorlib、P5 2.0.0.0、P6 4d8c128c、P7 420e、P8 51、P9 system.servicemodel.fault、P10 NIL。

これが多すぎる場合は申し訳ありません。
グーグルは、EventTypeへのいくつかのあいまいな参照だけで、多くの情報を取り戻していません. 私はデバッグを試みましたが、多くの場合、プログラムは XP64 開発マシン (サーバーで 2003 Ent64 が実行されています) で問題なく動作します。ただし、サービス参照を更新すると、Visual Studio は Web サービスへの 2 つの参照を作成し、アプリを実行しようとすると、アプリがどの参照を使用すべきかを判断できないことを示す厄介なエラーがスローされます。使用しています。app.config ファイルの余分な参照を削除すると、これは解決するようですが、これを実行してコンパイル済みのアプリをサーバーに移動しましたが、まだこのエラーが発生しています。アプリが .Net 3.5 用に作成されたときに、エラーが .Net 2.0 としてリストされていることも興味深いと思います。サーバーには.Net 3があります。
これは Visual Studio のバグでしょうか? もしそうなら、それを回避する方法はありますか?
ありがとう。
更新: スタック トレースを調べたところ、エラーが私のせいであることがわかりました。ストアド プロシージャに十分なパラメーターを渡していませんでした。振り返ってみると、フレームワーク全体が期待どおりに機能していたと思いますが、エラーが読みやすくなればいいのにと思います。

4

2 に答える 2

2

これは通常、.NET ランタイムがアプリケーションでキャッチされていない例外を通知する方法です。

「単純なコマンド ライン アプリケーション」を作成したので、コンソール、イベント ログ、または何らかのファイルに例外を書き込むと共に、try/catch ブロックを配置してみてください。

例:

public static int main(String[] args)
{
    try 
    {
       // other code

       return 0;
    }
    catch (Exception ex)
    {
       Console.Error.WriteLine(ex);

       // Save to file, in case this is an application that runs in the background
       // Make sure the directory exists and is writable though.
       System.IO.File.WriteAllText("C:\\TEMP\\Exception.txt", ex.ToString());

       return 1;
    }
}
于 2011-09-19T10:14:57.537 に答える
0
  1. 例外をキャッチしてログに記録してみてください
  2. AppDomain.CurrentDomain.UnhandledException を使用して、予期しない例外をキャッチしてログに記録してみてください。
于 2011-09-19T10:28:18.047 に答える