IIS 似乎允许每个客户端最多进行一次并发 WCF Web 服务调用

IIS 似乎允许每个客户端最多进行一次并发 WCF Web 服务调用

我们有一个 Windows 应用程序,它调用 Web 服务方法来访问数据库。我们发现一个案例,我们对 IIS 上的 WCF 服务进行了长时间(15 秒以上)的异步 Web 服务调用。如果 UI 在此过程中进行其他阻塞(旧代码)Web 服务调用,则这些其他调用将被阻止,直到初始异步调用完成。

当 UI 和 web 服务都在带有 IIS Express 的 Visual Studio 中运行时,不会发生这种情况:阻塞调用很快,并且所有这些操作都在长异步调用完成之前完成。

所有 Web 服务均具有以下内容:

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

此外,到处都是 maxConnections="500"。

我们希望让 IIS 以与 IIS Express 相同的方式同时处理这些并发的 web 服务调用。

...

如果有帮助的话,这一切都是有意义的:我们搜索对象。搜索返回符合条件的前 50 个(默认情况下)项目,同时我们对同一查询执行 count(*) 的异步调用。计数查询可能需要很长时间。用户坚持认为有时他们想知道总数是多少,但他们通常希望能够在计数返回之前打开结果列表中的对象。打开对象是同步 webservice 调用的用武之地。以前,搜索结果和计数都是同一 webservice 方法的一部分。

相关内容