一連の Web サービスを備えた ASP.NET アプリケーションと、これらの Web サービスを呼び出す WinForms アプリケーションがあります。
w3wp.exe (asmx 呼び出しを処理する) は、本当に「難しい」仕事 (圧縮、xml 解析など) を行う特別なプロセスを実行します。別のプロセスで実行する必要がある理由と、このコードを w3wp.exe 内で実行しない理由については、長い話になりますが、ここでは問題ではありません。そのようなものでなければなりません。
複数の要求が多数のユーザーから同時に送信された場合、そのようなプロセスが 30 ~ 40 あり、CPU を消費します。IIS 自体の CPU リソースがほとんど残っていないほど消費します。
問題は次のとおりです。次の HTTP 要求がこの IIS に送信されると、IIS はそれらを処理できません。サーバーが「爆撃」されているため、w3wp.exe に渡すことさえできません。 その結果、ピーク時に 30 人のユーザーがクエリを実行し、31 番目のユーザーが WinForms クライアントで「タイムアウトの期限が切れました」という WebException を取得しています。
IIS を微調整する方法を説明する記事をインターネットでたくさん見つけましたが、他のプロセスやアプリケーションが同じマシンで実行できるという事実を誰も考慮していません。また、IIS の優先順位を高くするために何をすべきかを誰も教えてくれません。
したがって、次の質問です。IIS がデフォルトで apppool (svchost.exe) と w3wp.exe をより高い優先度で開始する必要があることを "説明" する方法はありますか?