Назад | Перейти на главную страницу

WebClient не работает при загрузке больших файлов. Конфигурация IIS

В качестве фона я использую IIS8 и у меня есть WCF сервис, который мой WinForms клиент использует для всей работы. У меня также есть webclient который использует uploadFile и DownloadFile методы. Я добавил этот фрагмент кода в мою веб-конфигурацию.

<httpRuntime maxRequestLength="51200" executionTimeout="600" /> 

Все работало нормально, когда однажды я загрузил файл размером около 43 МБ, и это дало мне 404 (Not found) error. Я мог найти какое-то решение по переполнению стека и добавил этот другой фрагмент кода в веб-конфигурацию, поскольку это был IIS7 и более поздние версии.

    <system.webServer>
        <security>
            <requestFiltering>
                <requestLimits maxAllowedContentLength="51200000"></requestLimits>
            </requestFiltering>
        </security>
    </system.webServer>

Это решило проблему 404 error но теперь я получаю сообщение об ошибке

The request was cancelled. The request was aborted.

Я знаю, что проблема в httprequest тайм-аут, но я не могу понять, где его настроить. В executionTimeout был установлен, но мой процесс завершается через 90 секунд, что является значением по умолчанию. Я пробовал KeepAlive для запроса, но даже это не помогает.

Было бы действительно полезно, если бы можно было внести изменения в конфигурацию, а не в код клиента. Есть ли способ сделать это? Спасибо

Вы установили exectionTimeout в файле web.config службы wcf? WCF имеет метод, который можно установить через конфигурацию для тайм-аута. Вот ссылка, описывающая более подробно

http://msdn.microsoft.com/en-us/library/ms733051.aspx