-1

ユーザーは、エラーなしでアプリケーションを終了したと報告しました。イベント ビューアーにこれらのエラーがたくさんあります。

EventType clr20r3、P1 main.exe、P2 1.0.0.0、P3 4f6b05ad、P4 system.drawing、P5 2.0.0.0、P6 4333aeaf、P7 17e、P8 20、P9 system.argumentexception、P10 NIL。

EventType clr20r3、P1 main.exe、P2 1.0.0.0、P3 4f6b05ad、P4 microsoft.visualbasic、P5 8.0.0.0、P6 4333d6d8、P7 5e、P8 1e1、P9 34ssps20bdj3nj0wmit5kamzhvglfzcc、P10 NIL。

EventType clr20r3、P1 main.exe、P2 1.0.0.0、P3 4f6b05ad、P4 microsoft.visualbasic、P5 8.0.0.0、P6 4333d6d8、P7 85、P8 a2、P9 system.componentmodel.win32、P10 NIL。

Windows Server 2003 でターミナル サーバーを使用していますが、上記のように 1 日に約 500 件のエラーが発生します。

なにか提案を?

4

1 に答える 1

2

未処理の例外が発生しているようです。.NETアプリケーションで、Try / Catchブロックによってキャッチされない例外が発生し、それを表示するデバッガーがない場合、アプリケーションは終了します。

アプリケーションに例外処理とロギングを追加して、例外のすべての詳細を確認できるようにします。例外オブジェクトのToStringメソッドを表示またはログに記録するときに使用することをお勧めします。これにより、例外とそのすべての内部例外の例外タイプ、メッセージ、およびスタックトレースも表示されます。その情報を入手したら、何が問題になっているのか、どのように修正するのかを簡単に判断できるはずです。

例外処理を追加するには、VBのアプリケーションフレームワークを使用している場合は、プロジェクトのプロパティページの[アプリケーション]タブに移動し、[アプリケーションイベントの表示]ボタンをクリックします。クラスに、次MyApplicationのようなイベントのイベントハンドラーを追加しUnhandledExceptionます。

Private Sub MyApplication_UnhandledException(ByVal sender As Object, ByVal e As UnhandledExceptionEventArgs) Handles Me.UnhandledException
    MyLog.WriteEntry(e.Exception.ToString())
End Sub

ただし、アプリケーションフレームワークを使用しない場合は、アプリケーションのエントリポイントメティオン(Sub Main)に移動し、次のように、そのメソッドのすべてのコードの周りにTry/Catchブロックを配置します。

Public Sub Main
    Try
        ' ...
    Catch ex As Exception
        MyLog.WriteEntry(ex.ToString())
    End Try
End Sub

MyLogこれらの例は、共有WriteEntryメソッドを持つクラスがあることを前提としています。明らかに、そのようなクラスに独自のロギングを実装する必要があります。

于 2012-07-31T17:44:01.300 に答える