カスタムバインディングに変換せずに、ポーリングデュプレックスバインディングの最大文字列コンテンツ長プロパティを増やすことは可能ですか?

StackOverflow https://stackoverflow.com/questions/6306034

質問

SilverlightクライアントアプリケーションとWCF Webサービスとの間の通信に、ポーリングデュプレックスバインディングを使用しています。 XML文字列パラメーターを使用して、Webサービスから非同期的にメソッドを呼び出すことにより、Silverlight Web ApplciationからWCF Webサービスへのメッセージをプッシュします。本当に大きなXML文字列を送信しようとするまで、すべてが正常に機能しました。それから私はメッセージを受け取ります:

「フォーマッタは、メッセージを脱必要にしようとする際に例外を投げました:操作「sendusersection」のリクエストメッセージの脱気体化のエラー。XMLデータを読み取る間、最大文字列コンテンツの長さの割り当て(8192)を超えています。このクォータは、変更することで増加することがあります。 XMLリーダーを作成するときに使用されるXMLDictionaryReaderQuotasオブジェクトのMaxStringContentLengthプロパティ。」

この場合に通常行われることは、web.configファイルのバインディングのMaxStringContentLengthプロパティを増やすことです。ここでの問題は、Readerquotas要素(MaxStringContentLengthを含む)をバインディングに追加しようとする場合、まったく考慮されないことです。私はそれが既知の問題であることがわかりました: http://blogs.msdn.com/b/silverlightws/archive/2010/04/04/some-nking-wcf-issues-in-silverlight-4.aspx 。そこに与えられた解決策は、ポーリング二重要素を含むカスタムバインディングを使用することです。私はそれを試しましたが、どういうわけか私はそれを機能させませんでした。

私の質問は、この問題のために他の回避策がありますか、それともこれが唯一の解決策ですか?

役に立ちましたか?

解決

いいえ、カスタムバインディングに行く必要があります。 PollingDuplexHTTPBindingクラスはリーダーの割り当てを公開しないため、クォータの問題がある場合は、カスタムバインディングルートに行く必要があります。

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