0

この質問を見つけました: WCF の複雑なデータ型? 列挙値の問題に基づいていることを除いて、非常によく似た問題があります。私の問題はもう少し複雑です。1 つを除いて、完全に正常に機能するメソッドを備えたサービスがあります。失敗する 1 つのメソッド (operationcontract) 呼び出しは、複雑なオブジェクトを返すメソッドに対するものです。このオブジェクトには、[Include] フィールドと [Association] フィールドを持つプロパティがあり、さらに独自の [Include] フィールドと [Association] フィールドがあります (これらは実際には再帰的であり、相互にポイントし、潜在的に無限のリストを構築します。

最大の問題は、開発環境の Win 7 x64、vs2010、iis では期待どおりに機能しますが、本番環境の Server 2008 R2 では壊れて、「HTTP 応答の受信中にエラーが発生しました」というエラーが表示されることです。

メッセージ ログで Service Trace Viewer を確認しましたが、その特定の要求に対してまったく応答が送信されていないことがわかります。他のすべてのリクエストは「ServiceLevelSendReply」レコードを取得しますが、この特定のメソッドは取得しません。

何か案は?

4

1 に答える 1

1

オブジェクトが他のオブジェクトを循環的に参照しているため、基本的にはオブジェクト ツリーではなくオブジェクト グラフを送信しようとしています。WCF は、.NET 3.5 SP1 でのみオブジェクト グラフの送信のサポートを追加したため、サーバーに SP1 またはそれ以前のバージョンのない .NET 3.5 がある場合、オブジェクト グラフを送信しようとすると失敗します。

サービスが応答しない理由を正確に把握するには、WCF トレースを有効にして、サービス内で何が起こっているかの非常に詳細なログを生成することをお勧めします。

于 2011-01-18T21:11:57.167 に答える