У меня есть служба WCF REST, размещенная на IIS 7.5 Windows 2008 R2. Служба работает должным образом, кроме случаев, когда клиент пытается отправить сообщение размером более 25 МБ. В частности, при отправке сообщения размером ~ 25 МБ служба получает и обрабатывает сообщение правильно, при отправке сообщения размером ~ 31 МБ происходит сбой.
При локальном размещении на VS 2010 сообщение принимается без ошибок. При удаленном размещении в IIS 7.5 служба немедленно отвечает: «System.ServiceModel.EndpointNotFoundException: конечная точка не прослушивала ...», внутреннее исключение: «Удаленный сервер возвратил ошибку: (404) не найден» .
Это отличается от исключения, возникающего, когда установленный максимальный размер сообщения недостаточен. Учитывая, что при локальном размещении я не получаю сообщение об ошибке, я предполагаю, что это как-то связано либо с IIS, либо, возможно, с некоторыми настройками брандмауэра.
Это конфигурация:
<system.web>
<compilation debug="true" targetFramework="4.0" />
<httpRuntime requestPathInvalidCharacters="" maxRequestLength="512000"/>
</system.web>
<system.serviceModel>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true" aspNetCompatibilityEnabled="true"/>
<bindings>
<webHttpBinding>
<binding maxReceivedMessageSize="524288000" maxBufferSize="524288000">
<readerQuotas maxStringContentLength="524288000" maxArrayLength="524288000"/>
</binding>
</webHttpBinding>
</bindings>
</system.serviceModel>