WCFシリアル化の問題 /例外を追跡する方法
-
03-10-2019 - |
質問
私は時折、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
他のヒント
私はその問題を抱えていましたが、それはシリアル化の問題でした...時々、列なしでデータテーブルを送信していました。その場合、チャネルはエラーやトレースなしで閉じました。
所属していません StackOverflow