2009-08-16 26 views
1

WCFを使用するシステムでCommunicationExceptionsとの取引は何ですか?私はSOAPを使用してWCFを介してサーバーと通信するクライアントを持っています - すべての非同期通信。ときには、なぜ、いつ発生するかについて再現可能なパターンを見ずに、私の顔の中にスローされたCommunicationExceptionが発生することがあります。WCF - "CommunicationExceptionがユーザーコードで処理されていませんでした"

ただし、私はこれが最初のチャンス(?)の例外にすぎないので、プログラムを継続して実行することができます。したがって、私はこれについて心配する必要はなく、シーンの後ろで処理されると仮定します。しかし、私はまだ心配しています。誰かが私にこのことを教えてもらえるといいですね。私はWCFを介して関数を呼び出すすべての場所でCommunicationExceptionのtry-catchを行う必要がありますか?

+1

この例外はデバッガで表示されますか?それでは心配しないでください。これは最初の例外です。おそらく処理されるでしょう。 –

+0

はい - デバッガにあります。そして、はい - 私は後でプログラムを実行し続けることができるので、最初の例外です。そう;それで心配しないで?そのような例外について私に気にならないようにVisualStudioに伝えてください.. – stiank81

答えて

2

CommunicationExceptionは、すべてのWCF関連の問題のための基本型であると例多数で、クライアントで表示されることがあります。

  • とき、あなたのクライアントを例えばサーバーがビジー状態であり、任意のより多くのリクエストを処理できないと何かが、クライアントとサーバー間のネットワーク上でうまくいかない場合は、要求
  • を拒否したときに
  • 利用できないURL(接続などを落とした)
を要求

これらのポップアップが頻繁に発生する場合は、実際にCommunicationExceptionか、派生型(FaultException以上)であるかどうかをさらに詳しく調べる必要があります。

FaultExceptionは、サーバー上の何かが間違っていたことを示すものです。サーバーが要求を受け取ったが正しく処理できず、例外またはSOAPフォールトが戻された場合はスローされます。

例外のメッセージと、InnerExceptionがあったかどうかを確認しましたか?

マーク

+0

Thx!私はあなたを正しく理解していれば、クライアント側のすべてのMyFunctionAsync()コールでCommunicationExceptionの試行を試みるべきです。しかし、私は、サーバー側でこれを行う必要はないと仮定します。私の場合は頻繁に起こることはありません。私が再現できるまで頻繁にリクエストを送信します。例外は "NotFound"と表示され、InnerExceptionはWebExceptionのように見えます。 – stiank81

+0

はい、クライアントでは、サービスコールをtry..catchに置くことは間違いありません。サーバ側では、IErrorHandlerインタフェースにチェックインし、サービスクラスで実装してサーバ上で発生する例外をキャッチし、SOAPフォールトに変換して完全に "クリーン"にする必要があります。 –

+0

Thx!サーバー側で発生する可能性のある例外の警告が表示され、存在する場合は変換されます。 – stiank81

0

あなたはこのような何かを試みることができる:

+0

これをクライアント側に追加しましたが、例外は最初のチャンスの例外であるためクライアントに到達しませんでした。しかし、WCFを使用しているときに一般にそのような例外を試してみるべきですか、または通信タイプの例外がスローされないと仮定することはできますか? – stiank81

+0

また、クライアント側に例外を送信する必要がある場合は、サーバー側で例外をキャッチして障害例外として投げてください。どの例外がスローされるかは、WCF契約で指定する必要があります。 –

+0

本当ですか?何らかの通信例外がある場合に備えて、これをすべて行う必要がありますか? WCFが私のためにこれを処理することを望んでいた。私は両側で例外をキャッチしようとしましたが、これは何も変わりません。それでも、自動生成されたreference.csのEndMyServiceFunc()にある最初のチャンスの例外が表示されます。しかし、私はそのような例外を処理しない場合、これはいくつかの時間に爆破する可能性があると言っている? – stiank81

関連する問題