Score:0

IIS appears to allow maximum of one concurrent WCF webservice call per client

cn flag

We have a windows application which calls webservice methods for database access. We've found a case where we make a long (15+ seconds), asynchronous webservice call to a WCF service on IIS. If the UI makes other, blocking (it's old code), webservice calls while that's going on, those additional calls block until after the initial async call completes.

This does not happen when the UI and the webservices are both running in Visual Studio with IIS Express: The blocking calls are quick, and all of that stuff completes long before the long async call finishes.

The webservices all have the following:

<serviceThrottling 
    maxConcurrentCalls="5000" maxConcurrentSessions="5000" maxConcurrentInstances="5000" />

Also, maxConnections="500" everywhere.

We would like to make IIS handle these concurrent webservice calls the same way IIS Express does, concurrently.

...

If it helps this all make sense: We do a search for objects. The search returns the top 50 (by default) items that meet the criteria, and at the same time we do an asynchronous call for count(*) on the same query. The count query can take a very long time. The users insist that sometimes they want to know what the total count is, but they usually want to be able to open objects in the results list long before the count comes back. Opening the objects is where the synchronous webservice calls come in. Formerly, the search results and the count were all part of the same webservice method.

Lex Li avatar
vn flag
Enable WCF tracing in both cases (IIS Express/IIS), https://docs.microsoft.com/en-us/dotnet/framework/wcf/diagnostics/tracing/configuring-tracing and then you should be able to see clearly what's wrong.
Ed J. Plunkett avatar
cn flag
@LexLi Thanks, Lex. I'll do that.
Ed J. Plunkett avatar
cn flag
@LexLi Is there any particular information in there that you think might be helpful in identifying the cause of this issue?
Lex Li avatar
vn flag
Escalate to a developer of that web app and he/she knows how to analyze. There are several examples in https://docs.microsoft.com/en-us/dotnet/framework/wcf/diagnostics/tracing/using-tracing-to-troubleshoot-your-application
Ed J. Plunkett avatar
cn flag
@LexLi "Ask somebody who knows"? That was the idea behind posting a question here, actually.
Lex Li avatar
vn flag
You can review existing questions to see what kinds are more likely to be answered. Analyzing WCF issues requires access to the tracing log and various other logs (any of them can contain confidential information), and the possible error patterns are too many to be summarized in a short enough answer. That nature makes such questions difficult (if not impossible) to be discussed over the internet.
Ed J. Plunkett avatar
cn flag
@lexli Well, this is the question I’ve got.
mangohost

Post an answer

Most people don’t grasp that asking a lot of questions unlocks learning and improves interpersonal bonding. In Alison’s studies, for example, though people could accurately recall how many questions had been asked in their conversations, they didn’t intuit the link between questions and liking. Across four studies, in which participants were engaged in conversations themselves or read transcripts of others’ conversations, people tended not to realize that question asking would influence—or had influenced—the level of amity between the conversationalists.