SL では WCF 診断が利用できないようです。System.Diagnostics のサポートが限られているためか、それとも何か他の理由によるものですか? とにかく、サーバー側の診断では不十分な場合に、クライアント側の WCF の問題をどのように追跡しますか?
4 に答える
「Not Found」エラーが発生する場合、最も可能性の高い原因はクロス ドメイン アクセス ポリシーです。これらの問題を診断するために使用するのはFiddler2で、生のトラフィックを調べます。
これが、Silverlight クライアントで例外を正しく取得するという問題を解決した方法です。Rus に似ていますが、例外のラッピングを必要としません。ただし、バージョン番号が web.config で正確である必要があります (まだ解決に取り組んでいます)。
この記事が役立つと思います。
呼び出しで WCF サービスに障害が発生していないことを確認してください。サーバー側で何か問題が発生した場合、返されるメッセージは HTTP ステータス コード 500 になります。セキュリティ上の制限により、ブラウザーは 200 以外のメッセージを Silverlight プラグインに返さないため、Silverlight は従来の CommunicationException をスローします。リモート サーバーがエラーを返しました: NotFound."
WCF 動作を使用して障害の HTTP ステータス コードを 500 から 200 に変更するための十分に文書化された回避策がいくつかあるため、Silverlight は実際に問題の詳細にアクセスできます。詳細はこちら:
http://msdn.microsoft.com/en-us/library/dd470096(VS.95).aspx
http://www.netfxharmonics.com/2009/07/Understanding-WCF-Faults-in-Silverlight-3