結合、バイナリHTTPのサーバー側でMaxStringContentLengthを増やす方法
-
18-09-2019 - |
質問
私は最近、新しいバイナリHTTPバインディングを使用するために、いくつかのSilverlight 3 WCFサービスを変換します。長い文字列は、多くの場合、これらのサービスには、逆シリアル化のためにサーバに送信されるオーバーと私は、以前のデータを正しく読み取ることができることを確認するために使用されています。しかし、新しいバインディングと私は、要素を追加するための正しい場所を見つけることができません。
<customBinding>
<binding name="binaryHttpBinding">
<binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647"/>
<httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
</binding>
</customBinding>
ここに1つの試みです
<customBinding>
<binding name="binaryHttpBinding">
<binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647"/>
<httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
<textMessageEncoding>
<readerQuotas maxDepth="32" maxStringContentLength="5242880"
maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</textMessageEncoding>
</binding>
</customBinding>
他の問題を引き起こしたこと - バイナリエンコーディングと同じ結合でtextMessageEncodingを持っているのは良いアイデアのように見えるしていません。だから私は、大きな文字列の直列化復元を可能にするために、リーダーのクォータを増やすことができますどのように、唯一のバイナリエンコーディングを使用していますか?
解決
ここで私が見つけた解決策があります:
<customBinding>
<binding name="binaryHttpBinding">
<binaryMessageEncoding maxReadPoolSize="2147483647" maxSessionSize="2147483647" maxWritePoolSize="2147483647">
<readerQuotas maxDepth="32" maxStringContentLength="5242880"
maxArrayLength="200000" maxBytesPerRead="4096" maxNameTableCharCount="16384" />
</binaryMessageEncoding>
<httpTransport maxBufferPoolSize="2147483647" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/>
</binding>
</customBinding>
所属していません StackOverflow