Как я могу увеличить время ожидания для веб-службы, работающей в IIS7? - PullRequest
1 голос
/ 10 января 2011

У меня есть метод веб-службы (.asmx), выполнение которого занимает несколько минут.На клиенте я установил тайм-аут на бесконечность:

   services.Timeout = -1;

Как я могу сделать то же самое на сервере?

Я попытался добавить следующее в мою web.config

<system.web>
<httpRuntime executionTimeout="1200"/>

В документации MSDN сказано, что это должно увеличить время ожидания на секунды.Тайм-аут наступает быстрее, чем 20 минут.

Может ли кто-нибудь помочь?

Спасибо!

Ответы [ 2 ]

3 голосов
/ 10 января 2011

По умолчанию пул приложений перезагружается каждые 20 минут.

Честно говоря, если у вас есть запрос, который занимает так много времени, вам следует изучить другие подходы. Если вы создаете файл или отчет, который занимает вечность, рассмотрите возможность его создания в фоновом режиме в службе Windows и по электронной почте пользователю, когда он будет готов.

Возможно, лучше задать вопрос: что на это уходит так долго, и как вы можете его оптимизировать?

Я обновлю свой ответ, если вы предоставите больше информации.

0 голосов
/ 10 января 2011

Вы также должны изменить:

<system.web>
    <sessionState timeout="..." />
</system.web>

А также настройте время ожидания пула приложений, как сказал David Lively . Это можно сделать в диспетчере IIS.

...