Слишком большая ошибка объекта запроса (413) в WCF

Я сталкиваюсь с ошибкой 413 в службе WCF, даже если для maxReceivedMessageSize установлено значение max, т.е. 2147483647, а фактический размер сообщения меньше 50 КБ.

Эта проблема возникает только тогда, когда между двумя запросами существует идеальное время. Точный сценарий выглядит следующим образом: 1. Отправьте 1000 сообщений, каждое из которых имеет размер около 38 КБ. СТАТУС: ПРОЙДЕН 2. Подождите некоторое время (минимум 3 минуты) 3. Отправьте 1 сообщение. СТАТУС: НЕУДАЧА. (ошибка 413)

Я использую привязку ws2007FederationHttpBinding. Тег Web.config выглядит следующим образом:

<ws2007FederationHttpBinding>
    <binding name="federationHttpBinding" openTimeout="00:04:00" closeTimeout="00:04:00" receiveTimeout="00:04:00" sendTimeout="00:40:00" maxReceivedMessageSize="2147483647">
      <!-- <readerQuotas maxArrayLength="2147483647" maxDepth="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647" /> -->
      <security mode="TransportWithMessageCredential">
        <message establishSecurityContext="false">
        </message>
      </security>
    </binding>
  </ws2007FederationHttpBinding>

Тег привязки на стороне клиента выглядит следующим образом:

<ws2007FederationHttpBinding>
    <binding name="AuthorizationBinding" openTimeout="00:04:00" closeTimeout="00:04:00" receiveTimeout="00:04:00" sendTimeout="00:40:00" maxReceivedMessageSize="2147483647" maxBufferPoolSize="2147483647">
      <readerQuotas maxArrayLength="2147483647" maxDepth="2147483647" maxBytesPerRead="2147483647" maxNameTableCharCount="2147483647" maxStringContentLength="2147483647"/>
      <security mode="TransportWithMessageCredential">
        <message establishSecurityContext="false"/>
      </security>
    </binding>
</ws2007FederationHttpBinding>

person Microsoft Developer    schedule 03.03.2015    source источник


Ответы (2)


Я думаю, вы могли бы решить эту проблему, удалив атрибут имени из тега привязки. Аналогичную проблему можно найти здесь.

Проблема службы WCF maxReceivedMessageSize basicHttpBinding

person Khaled El Kholy    schedule 03.03.2015

Вы также должны установить maxBufferSize

    <binding name="federationHttpBinding" 
             maxReceivedMessageSize="2147483647" 
             maxBufferSize="2147483647"
             maxBufferPoolSize="2147483647">
person Thorarins    schedule 03.03.2015
comment
Это не работает. maxBufferSize не является допустимым атрибутом и добавил maxBufferPoolSize, но все та же проблема - person Microsoft Developer; 03.03.2015
comment
где вы размещаете сервис? если это в iis, может потребоваться увеличение общего размера сообщений - person Thorarins; 03.03.2015