1

クライアントが WebSync への接続、サブスクライブなどの呼び出しを行っている .NET アプリケーションで WebSync を使用しています。コードの実行中のどこか (これは大きなアプリです) で、上記のエラー メッセージを示す灰色のボックス ポップアップが表示されます。これは大きなアプリなので、アプリケーション内のどこでこれが発生しているかをどのように見つけることができますか? 問題は、このアプリケーションに多くのスレッドがあることです。

このメッセージは、FM.dll (WebSync) に問題があることを意味するのでしょうか、それとも、この例外をキャッチするコードに何かが欠けていることを意味するのでしょうか。後者の場合、コード内のどこでこれが発生する可能性があるかをどのように見つけますか?

ありがとう!

これが私のエラーのコールスタックです。これが私の側のエラーなのか、問題が FM.dll (WebSync) 内にあるのか、どうすればわかりますか?


FM.dll !FM.AsyncException.AsyncThrow.AnonymousMethod__0 (オブジェクトは未使用) + 0x47 バイト+ 0x285 バイト mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext、System.Threading.ContextCallback コールバック、オブジェクト状態、bool preserveSyncCtx) + 0x9 バイト
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System. Threading.IThreadPoolWorkItem.ExecuteWorkItem() + 0x6f バイト mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() + 0x1ea バイト
[マネージド移行にネイティブ]
[Appdomain 移行]
[管理された移行にネイティブ]

4

2 に答える 2

1

「Break on All Exceptions」がオンになっている場合、デバッガーを起動すると、例外がスローされたときに、スタック トレースを表示してナビゲートできます。これにより、コードが例外に至るまでのパスがわかります。例外を調べて、InnerExceptionプロパティが設定されているかどうかを確認することもできます。その情報から、問題の原因を特定できるはずです。収集した情報から詳細を投稿しない場合は、より多くのヘルプを得ることができます。

すべての例外で中断するように Visual Studio を設定する手順: http://msdn.microsoft.com/en-us/library/d14azbfh.aspx

于 2014-01-31T22:30:48.673 に答える
0

FM ライブラリでAsyncException.AsyncThrowは、非同期コールバックで例外がスローされたときに使用されます。FM コールバック コードを try/catch ブロックでラップして、例外をキャッチしてみてください。

client.Connect(new ConnectArgs
{
    OnSuccess = (e) =>
    {
        try
        {
            // your code
        }
        catch (Exception ex)
        {
            // handle exception
        }
    }
});

コールバック コードを try/catch ブロックでラップしない場合、FM ライブラリは例外をスレッドにプッシュし、例外を飲み込んだり隠したりするのではなく、大声で失敗します。

于 2015-06-03T20:20:05.620 に答える