Существует приложение ASP.NET с набором веб-служб и приложение WinForms, которое вызывает эти веб-службы.
W3wp.exe (который обрабатывает вызовы asmx) запускает специальные процессы, которые выполняют действительно «сложные» задания (например, архивирование, синтаксический анализ xml и т. Д.). Это долгая история, почему нам нужно делать это в отдельных процессах и почему мы не запускаем этот код внутри w3wp.exe - здесь это не имеет значения. Так должно быть.
Если несколько запросов пришли одновременно от многих пользователей, таких процессов может быть 30-40, и они потребляют ресурсы ЦП. Они потребляют его так много, что для самого IIS почти не остается ресурсов процессора.
Итак, проблема следующая: когда следующие HTTP-запросы поступают в этот IIS, IIS не может их обработать: он не может даже передать их в w3wp.exe, потому что сервер "взорван". И, как В результате в пиковое время 30 пользователей выполнили свои запросы, а 31-й пользователь получает исключение WebException в клиенте WinForms «истекло время ожидания».
Я нашел в Интернете много статей, в которых объясняется, как настроить IIS, но никто не принимает во внимание тот факт, что ДРУГИЕ процессы и / или приложения могут работать на одном компьютере. И никто не говорит, что делать, чтобы у IIS был более высокий приоритет.
Итак, вопрос следующий: есть ли способ «объяснить» IIS, что он должен по умолчанию запускать пул приложений (svchost.exe) и w3wp.exe с более высоким приоритетом?