Is it possible to tell IIS 7 to parallelly process the request queue?

We are currently developing an ASMX, ASP 2.0, IIS 7 web service that does some calculations (and returns a dynamically generated document) and takes about 60 seconds to run.

Since I have a large machine with several cores and lots of RAM, I expected that IIS was trying hard to direct the requests coming into its request queue to all available threads from the application pool thread pool.

But we experience the quiet opposite:

When we send requests to the ASMX web service URL from several different clients, IIS seems to process these requests sequentially. Those. request 1 arrives, is processed, then request 2 is processed, then request 3, etc.

Question:

Is it possible (without changing the C # web service code) to configure IIS to process requests in parallel if enough threads are available?

  • If yes: how do I do this?
  • This is not: any workarounds / tips?
+4
source share
2 answers

Make sure you have the "Maximum Workflow" for the application pool set to> 1 so that the work pool becomes Web Garden . By default, only one process is installed for each application pool, which will result in requests being queued.

You can also watch this article on using ASP.NET 2.0 in integrated mode on IIS7.

  1. ASP.NET streaming options not used to manage concurrency request in integrated mode

MinFreeThreads, minLocalRequestFreeThreads settings in the system.web / httpRuntime configuration, and maxWorkerThreads in the processModel configuration section there is no longer control over the thread mechanism used by ASP.NET. Instead, ASP.NET relies on the IIS thread pool and allows you to control the maximum number of simultaneous requests by setting the MaxConcurrentRequestsPerCPU DWORD value (default is 12), located in the HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ ASP.NET \ 2.0.50727.0 key. This parameter is global and cannot be changed for individual pools or applications. Bypass

a. To control the concurrency of your application, set the MaxConcurrentRequestsPerCPU value.

+4
source

Do you use session state in your web service? Requests for pages using session state are serialized; perhaps the same with your service.

ASP.NET and IIS typically process requests in parallel. If this is not so, then something is in the way.

+2
source

Source: https://habr.com/ru/post/1307415/


All Articles