Получение исключения при попытке загрузить файлы большого размера

Я использую wshttpbinding для своего сервиса

<wsHttpBinding>
            <binding name="wsHttpBinding_Windows" maxBufferPoolSize="9223372036854775807" maxReceivedMessageSize="2147483647">
                <readerQuotas maxArrayLength="2147483647" maxBytesPerRead="2147483647" maxStringContentLength="2147483647" maxNameTableCharCount="2147483647"/>
                <security mode="Message">
                    <message clientCredentialType="Windows"/>
                </security>
            </binding>
        </wsHttpBinding>

<behavior name="ServiceBehavior">
                <dataContractSerializer  maxItemsInObjectGraph="6553600"/>
                <serviceThrottling maxConcurrentCalls="2147483647" maxConcurrentInstances="2147483647" maxConcurrentSessions="2147483647"/>
            </behavior>

и когда я пытаюсь загрузить файл размером 15 МБ, он выдает EndPointNotFoundException ниже:

Сообщение об исключении:

There was no endpoint listening at "MY SERVICE URL" that could accept the message. This is often caused by an incorrect address or SOAP action. See InnerException, if present, for more details.

Исключение:

The remote server returned an error: (404) Not Found.

person Gaby    schedule 17.06.2011    source источник
comment
Работает ли это, если вы загружаете файлы меньшего размера?   -  person Edwin de Koning    schedule 17.06.2011
comment
Проверьте IP-адрес и порт конечной точки в разделе <endpoint>.   -  person oleksii    schedule 17.06.2011
comment
да, он загружает меньший размер. Есть еще одна вещь, которую я использую асинхронные вызовы (если это имеет значение).   -  person Gaby    schedule 17.06.2011


Ответы (2)


В вашей конфигурации WCF есть (2) настройки maxRequestLength и maxAllowedContentLength на стороне сервера, которые вам нужно будет увеличить, чтобы это исключение было разрешено. В .config для серверной части службы WCF обязательно добавьте следующее:

<system.web>
  <!--Increase 'maxRequestLength' to needed value: 100mb (value is in kilobytes)-->
  <httpRuntime maxRequestLength="102400"/>
</system.web>

<system.webServer>
  <security>
    <requestFiltering>
      <!--Increase 'maxAllowedContentLength' to needed value: 100mb (value is in bytes)-->
      <requestLimits maxAllowedContentLength="104857600" />
    </requestFiltering>
  </security>
</system.webServer>
person atconway    schedule 13.11.2012

Лимит загрузки устанавливается на уровне 2, 1-й для Приложения и 2-й для Сервера.

Ваша конфигурация приложения выглядит хорошо для меня.

Проверьте настройки IIS, указанные в файле machine.config. Я нашел статью Microsoft KB, чтобы настроить это

Вы можете настроить значение в любом из этих мест.

person sandyiit    schedule 17.06.2011