質問

私は時折、WCFシリアル化中にアプリケーションの例外がスローされるという問題に遭遇することがあります(OperationContractからデータコントラクトを返した後)。私が得る唯一の(そして意味のない)メッセージは

System.ServiceModel.CommunicationException:基礎となる接続が閉じられました。接続は予期せず閉じられました。

内部例外に対する洞察がなければ、シリアル化中にエラーの原因となったものを見つけるのが本当に難しくなります。

誰かがこれらの例外を追跡、ログ、デバッグする方法を知っていますか?それとも、例外をキャッチし、それらを処理し、定義されたフォールメッジをクライアントに送信できますか?

ありがとうございました

役に立ちましたか?

解決

このようなサービス動作を構成する場合は、内部例外を取得する必要があります。

<system.serviceModel>
     <behaviors>
         <serviceBehaviors>
               <behavior name="YourServiceBehaviour">
                   ...
                   <serviceDebug includeExceptionDetailInFaults="true" />
                   ...
               </behavior>
         </serviceBehaviors>
     </behaviors>
</system.serviceModel>

さらに、トレースを有効にすることができます。今は良い記事を見つけていませんでしたが、おそらくこれにより始めます:

http://developers.de/blogs/damir_dobric/archive/2009/03/24/using-of-wcf-trace.aspx

他のヒント

私はその問題を抱えていましたが、それはシリアル化の問題でした...時々、列なしでデータテーブルを送信していました。その場合、チャネルはエラーやトレースなしで閉じました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top