0

我有一个在 ASP.NET 3.5 上运行的 REST 服务,并且我有多个来自客户端的并发异步调用命中 WCF 服务。它们都被序列化(顺序)而不是并行调用。这是我的设置

InstanceContextMode = InstanceContextMode.PerSession

ConcurrencyMode = ConcurrencyMode.Multiple

web.config - 限制值

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

代码中没有会话写入。

为了使我的 WCF 并发,我缺少什么?

4

2 回答 2

0

我遇到了类似的问题,但我使用的是普通的旧 .aspx 页面。无论我打了多少电话,IIS 都只是以串行方式而不是并行方式处理它们。

事实证明,问题在于当前页面锁定了会话,因此一次只有一个页面可以访问会话,因此是串行的。

我不知道您的问题是否是由同一问题引起的,但我认为这可能是一个不错的起点。

于 2012-10-22T20:55:07.353 回答
0

假设它发生,导致 PerSession 模式。尝试从不同的客户端调用服务我认为你会有并行调用。

对于每会话服务,Max Instances 既是并发活动实例的总数,也是并发会话数。

您可以使用 per-call 类型的服务,实例数实际上与并发调用数相同。或者您可以在客户端上使用异步方法,例如'Begin...()'

于 2012-10-22T20:44:45.147 回答