влияние отключения утилизации рабочего процесса в пуле приложений IIS - PullRequest
1 голос
/ 23 декабря 2010

У меня есть служба WCF, размещенная в IIS, выполнение которой занимает много времени (около 5 часов). служба WCF в основном генерирует некоторые отчеты, используя SSRS (службы отчетов SQL-сервера), и сохраняет их в расположении на сервере. эта служба фактически остановилась после генерации нескольких отчетов, поэтому я отключил «перезапуск рабочих процессов», «отключение рабочих процессов после простоя» и «ограничение очереди запросов ядра» в пуле приложений, и это устранило проблему, и все отчеты были генерируется независимо от суммы, взятой для их генерации. но я не уверен, что это правильное решение для этого, и я хотел бы знать, каково влияние снятия флажка этих параметров в пуле приложений для службы WCF в IIS? и есть ли лучший способ обойти эту проблему?

Ответы [ 2 ]

5 голосов
/ 23 декабря 2010

Для любого продолжительного процесса гораздо лучше сделать это за пределами IIS.

В этом случае у меня будет запущена обычная служба Windows, которая отслеживает очередь запросов.Когда приходит запрос на генерацию отчета, он затем запускает поток для выполнения генерации.

Веб-служба будет нести ответственность за 3 вещи.Во-первых, добавление элемента в очередь для обработки.Во-вторых, проверка состояния очереди на предмет готовности отчета.В-третьих, отправка заполненного отчета обратно вызывающему клиенту.

Это позволило бы клиенту по существу сделать пожар и забыть о запросе на отчет и перезвонить позже, чтобы проверить его состояние.Кроме того, это будет означать, что если IIS переработан по какой-либо причине, вы все еще в порядке.

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

0 голосов
/ 24 декабря 2010

Я отключил также все процессы автоматического выключения из iis для моего приложения без каких-либо проблем. У меня есть монитор ограничений памяти и, конечно, программа работает без проблем с памятью.

Я думаю, что эти триггеры автоматического выключения предназначены в основном для процессов, которые объединяют слишком много веб-сайтов, и, возможно, некоторые из них имеют плохое программирование. Но если вы являетесь хозяином своего iis, и вам нужно проверить свою программу, у которой нет проблем с памятью, то лучше не выключать ее или хотя бы каким-то образом управлять процессом выключения.

Хорошо, лучше сделать длительный процесс вне IIS, но его не так просто разработать, не так просто установить, не так просто проверить.

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