У меня есть модульный тест, который отправляет умеренно большой объект в службу WCF.Если я передаю ноль для этого параметра, все работает нормально.Когда я отправляю заполненный объект, я получаю ответ HTTP 400.
Трассировка WCF показывает эту ошибку:
Превышена квота максимального размера сообщения для входящих сообщений (65536).
Однако я настроил параметры конфигурации размера в app.config для проекта модульного тестирования следующим образом:
<basicHttpBinding>
<binding name="BasicHttpBinding_IMyAppService" closeTimeout="00:01:00"
openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
maxBufferSize="200000000" maxBufferPoolSize="200000000" maxReceivedMessageSize="200000000"
messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
useDefaultWebProxy="true">
<readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
<security mode="None">
<transport clientCredentialType="None" proxyCredentialType="None"
realm="" />
<message clientCredentialType="UserName" algorithmSuite="Default" />
</security>
</binding>
</basicHttpBinding>
Чего мне не хватает в моей конфигурации, чтобы поднятьдопустимый размер сообщения выше 65536, видимый в сообщении об ошибке?
ОБНОВЛЕНИЕ:
Файл web.config для узла веб-службы также устанавливает для maxReceivedMessageSize большое значение (я думаю):
<binding name="basicHttpBindingConfig" maxReceivedMessageSize="20000000" maxBufferSize="20000000" maxBufferPoolSize="20000000">
<readerQuotas maxDepth="32" maxArrayLength="200000000" maxStringContentLength="200000000"/>
<security mode="TransportCredentialOnly">
<transport clientCredentialType="Ntlm"/>
</security>
</binding>