可能重复:
Accessing PerSession service simultaneously in WCF using C#
我已经实现了一个c#wcf服务,它有方法s1和方法s2。方法s1是执行处理的主进程,方法s2是一个辅助方法,它根据两个静态int变量(总计,当前)跟踪方法s1状态。
total ----> indicates the total number of tasks.
current-----> indicates the current task that is being processed.
我还创建了3个c#客户端,它们异步调用Web服务。以下提到的是客户方法。
client1: c11,c12
client2: c21,c22
client3: c31,c32
所有这三种客户端方法都可以并行调用服务。所以现在我的问题是2变量total和current是静态变量。当所有三个客户端同时调用服务时,总的和当前值混合在一起而不是为每个客户端分开。
在正常符合条件的情况下,他们应该是这样的:
client1: (total,current)------>(3,1)(3,2)(3,3)
client2: (total,current)------>(2,1)(2,2)
client3: (total,current)------>(4,1)(4,2)(4,3)(4,4)
但现在我的常规情况是我得到的值全部混淆了,因为总变量值不应该为任何客户端改变它应该是相同的。因为这两个变量total和current将在我的wcf应用程序中被访问并且将被修改我在类中将它们设置为静态,以便它们可以被制作为全局并且可以通过类名来访问wcf中我想要的任何地方程序。所以我无法弄清楚如何解决这个问题,任何人都可以帮忙。
答案 0 :(得分:0)
本质上,服务是每个客户端自己的实例。使用ConcurrencyMode
,您可以对此进行调整。