У меня есть приложение, которое загружает большие файлы, используя WCF с netTcpBinding. Для определенного файла я получаю сообщение об ошибке:
Превышен максимальный размер квоты для входящих сообщений (65536). Чтобы увеличить квоту, используйте свойство MaxReceivedMessageSize для соответствующего элемента привязки.
Вот моя привязка к клиентскому файлу web.config (клиент является веб-сайтом ASP.NET):
<binding name="DataImportEndpoint" closeTimeout="00:20:00" openTimeout="00:01:00"
receiveTimeout="00:20:00" sendTimeout="00:20:00" transferMode="Buffered"
hostNameComparisonMode="StrongWildcard" maxBufferPoolSize="524288"
maxBufferSize="5242880" maxReceivedMessageSize="5242880">
<readerQuotas maxDepth="32" maxStringContentLength="524288" maxArrayLength="16384"
maxBytesPerRead="4096" maxNameTableCharCount="16384" />
<security mode="Transport">
<transport clientCredentialType="Windows" protectionLevel="EncryptAndSign" />
</security>
</binding>
Я понял, что мне также нужно изменить свойство maxReceivedMessageSize для конфигурации службы. Поэтому я добавил эту привязку:
<bindings>
<netTcpBinding>
<binding name="NetTcpLarge"
maxReceivedMessageSize="5242880" maxBufferSize="5242880">
<readerQuotas maxStringContentLength="524288"/>
</binding>
</netTcpBinding>
</bindings>
и изменил мою конечную точку:
<endpoint address="DataImportService" binding="netTcpBinding"
name="DataImportEndpoint" bindingConfiguration="NetTcpLarge"
contract="IDataImportService" />
Это исправило проблему, когда я запускаю себя в Visual Studio. Но на экземпляре, работающем на IIS 7, я все еще получаю ту же ошибку, что было превышено 65536. Я что-то здесь упускаю? я даже добавил это к своей конфигурации службы в экземпляре IIS 7, но безрезультатно:
<system.webServer>
<security>
<requestFiltering>
<requestLimits maxAllowedContentLength="5242880" />
</requestFiltering>
</security>
</system.webServer>