В качестве фона я использую 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 имеет метод, который можно установить через конфигурацию для тайм-аута. Вот ссылка, описывающая более подробно