2011-12-21 31 views
0

クライアントから呼び出されるWCFサービスがあります。デバッグ中にクライアントとクライアントの間で行き来するデータが集中すると、何らかの理由でサービスに例外が発生し、サービスを再度ロードする必要があります。私の場合、サービスはロードに約10分かかります(データがロードされます)。私はWCF自体に例外を投げているわけではありません。私はすべてのサービスコール/関数を "tryとcatch {return null}"(破棄する代わりにnullをクライアントに返します)をラップしましたが、例外はクライアントで発生しており、サービスは中断しています。例外をスローしないでWCFにスローする

このエラーはどこで発生していますか? WCFサービスの内部からのランダムな例外を除いて、この通信例外です。私はこの例外をキャッチし、サービス全体をフォールトさせたくありません(サービスを再開するために10分の待ち時間が必要です)。 WCF内のすべての例外をキャッチして障害を起こさないツール/コードはありますか?ネットワーク接続の停止のようないくつかの例外は私たちの制御から外れています。私は、例えば、「新しい例外(」何か "が起こった)のような任意の例外が私の自己を投げていないよ。)あなたの助けを

感謝を。

+2

例外は何ですか?それは何と言いますか? InnerExceptionはありますか?詳細が必要です。 – Amy

+0

"CommunicationException"です。 – iefpw

+0

{"基本接続が閉じました:受信時に予期しないエラーが発生しました。"} {"トランスポート接続からデータを読み取ることができません:リモートホストによって強制的に既存の接続が閉じられました。"} {"受信中にエラーが発生しましたhttp://asdf232.com/Service.svcへのHTTP応答。これは、HTTPプロトコルを使用していないサービスエンドポイントのバインディングが原因である可能性があります。これは、HTTP要求コンテキストがサーバーによって中断されたためですサービスがシャットダウンしています)。詳細はサーバーログを参照してください。 "} – iefpw

答えて

0

あなたが把握できるように、トレースを有効にするために私の答えhereを参照してください。あなたのWCFサービスで問題が発生している理由について誰でもあなたに確かな理由を与えることができます。

+0

これはMSDNのcommunicationexceptionarticleに記載されているデバッグ中に発生します。不具合などについて – iefpw

0

あなたのサービスには多くのあなたのサービスからどれくらいのデータを返すのですか?巨大なリストを返すと、この例外はクライアント/サーバの設定が間違っていることが原因である可能性があります。おそらくmaxReceivedMessageSizeとmaxBuff erSize;ときには、サーバーとクライアントの両方でDataContractSerializerのmaxItemsInObjectGraphを増やすこともあります。

また、複数のtry-catchブロックの代わりにサーバー上のすべての例外をキャッチするために、IErrorHandlerを実装できます。

関連する問題