WCF 4 REST Максимальный размер полученного сообщения - PullRequest
1 голос
/ 27 апреля 2011

Я тестирую интерфейс WCF 4 Rest.

При попытке получить с помощью fiddler я получаю следующее сообщение: «Превышена квота максимального размера сообщения для входящих сообщений (65536). Чтобы увеличить квотуиспользуйте свойство MaxReceivedMessageSize соответствующего элемента привязки. "

Я пытался увеличить его в своем файле web.config, но он не был получен:

<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
  <webHttpEndpoint>
    <!-- 
        Configure the WCF REST service base address via the global.asax.cs file and the default endpoint 
        via the attributes on the <standardEndpoint> element below
    -->
    <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" maxReceivedMessageSize="327680" />
  </webHttpEndpoint>
</standardEndpoints>

Спасибо, Миккель

Ответы [ 4 ]

1 голос
/ 13 июля 2013

Попробуйте выполнить следующие настройки веб-конфигурации (в Сервисе):

    <serviceHostingEnvironment aspNetCompatibilityEnabled="true"
      multipleSiteBindingsEnabled="true" />
    <standardEndpoints>

            <webHttpEndpoint>
                <standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"                                        
                                  crossDomainScriptAccessEnabled="true" 
                                  maxReceivedMessageSize="2147483647" 
                                  maxBufferSize="2147483647" 
                                  maxBufferPoolSize="4194304" />
            </webHttpEndpoint>

    </standardEndpoints>

    <bindings>
        <webHttpBinding>
            <binding>
                <readerQuotas maxStringContentLength="2147483647"/>
            </binding>
        </webHttpBinding>
    </bindings>

</system.serviceModel>

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true" />
</system.webServer>
1 голос
/ 10 ноября 2011

Я только что столкнулся с этим сегодня, и было немного трудно понять. Следующий конфиг (адаптированный из ответа на этот вопрос ) должен работать:

<system.web>
  <!-- maxRequestLength is in KB -->
  <httpRuntime maxRequestLength="320" />
</system.web>

<system.serviceModel>
  <serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
  <bindings>
    <webHttpBinding>
      <binding maxReceivedMessageSize="327680" />
    </webHttpBinding>
  </bindings>
  <standardEndpoints>
    <webHttpEndpoint>
      <standardEndpoint name=""
                        helpEnabled="true"
                        automaticFormatSelectionEnabled="true" />
    </webHttpEndpoint>
  </standardEndpoints>
</system.serviceModel>

Я почти уверен, что вам нужен бит httpRuntime, потому что вы используете aspNetCompatibilityEnabled со значением true.

0 голосов
/ 27 апреля 2011

Увеличили ли вы значение MaxReceivedMessageSize как в файле web.config (на стороне службы), так и в конфигурации (файле) вашего клиента?

Если это так, можете ли вы попытаться увеличить MaxBufferSize до того же значения, что и MaxReceivedMessageSize ?

0 голосов
/ 27 апреля 2011

Получайте трассировки WCF на подробном уровне с помощью ActivityTracing и проверяйте, какие точки применяются к вашему сервису в действиях Construct ServiceHost и Open ServiceHost. Это даст вам представление о том, применяется ли вышеуказанная конфигурация к службе или нет.

НТН, Amit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...