Има приложение ASP.NET с набор от уеб услуги и има приложение WinForms, което извиква тези уеб услуги.
W3wp.exe (който обработва asmx извиквания) изпълнява специални процеси, които вършат наистина „трудни“ задачи (като компресиране, парсване на xml и т.н.). Дълга е историята защо трябва да се прави в отделни процеси и защо не стартираме този код вътре в w3wp.exe - това тук няма значение. Сигурно е така.
Ако няколко заявки дойдат едновременно от много потребители, може да има 30-40 такива процеса и те консумират CPU. Те го консумират толкова много, че почти не остават ресурси на процесора за самия IIS.
И така, проблемът е следният: когато следните HTTP заявки идват към този IIS, IIS не може да се справи с тях: не може дори да ги предаде на w3wp.exe, защото сървърът е „бомбардиран“. И като резултат, в пиково време 30 потребители са изпълнили своите заявки, а 31-вият потребител получава WebException в WinForms клиента „времето за изчакване е изтекло“.
Намерих много статии в интернет, които обясняват как да настройвам IIS, но никой не взема предвид факта, че ДРУГИ процеси и/или приложения могат да работят на същата машина. И никой не казва какво да направя, за да направя IIS с по-висок приоритет.
И така, въпросът е следният: има ли начин да се "обясни" IIS, че трябва да стартира по подразбиране apppool (svchost.exe) и w3wp.exe с нейния приоритет?