바이너리 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>
한 가지 시도가 있습니다.
<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