IIS do not serve other users' requests why one user calls web-service
Good day!
I've an application where 3rd party SOAP web-service is involved. Web service call is not very fast (a 1-3 seconds in common). I noticed that during this calls the entire application is 'locked' -- IIS do not serve requests from other users.
I know that it is possible to call web service in another thread or in async way, but it seems to be an overkill for 2-3 seconds calls. May be there is some IIS configuration to resolve this?
I use IIS 6.0 on Window开发者_运维技巧s Server 2003. Application is ASP.NET MVC 2 based.
Thanks!
Just to get that straight: you have an ASP.NET MVC 2 application calling an external SOAP web service. You have one user (session) calling some controller action which itself calls the service. During this call another user (different session) calls the same action and you are saying that it should wait until the first request completes. That's kinda strange and unlikely.
The behavior you are describing could happen if you are using sessions and you have two concurrent requests (from the same HTTP session). Because session is not thread safe ASP.NET (and this is not a limitation of MVC it has always been like this) will queue all requests from the same session that are writing to it. Here's a blog post which illustrates this (in the Session Limitations section)
IIS automatically threads separate inbound web requests.
If your web server is not responding for the duration of a request and that request is taking two or three seconds, then it sounds like your web application is using extremely high cpu and/or memory which is therefore causing the web server to grind to a halt.
What is your application doing? Maybe provide some code?
精彩评论