【问题标题】:Client async call to WCF service [duplicate]客户端对 WCF 服务的异步调用 [重复]
【发布时间】:2012-06-27 20:33:52
【问题描述】:

可能重复:
Accessing PerSession service simultaneously in WCF using C#

我已经实现了一个具有方法 s1 和方法 s2 的 c# wcf 服务。方法 s1 是执行处理的主进程,方法 s2 是辅助方法,它根据两个静态 int 变量(总计、当前)跟踪方法 s1 的状态。

total ----> indicates the total number of tasks.
current-----> indicates the current task that is being processed.

我还创建了 3 个异步调用 Web 服务的 c# 客户端。下面提到的这些是客户端方法。

client1: c11,c12
client2: c21,c22
client3: c31,c32

所有这 3 个客户端方法都会并行调用服务。所以现在我的问题是 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 中的任何位置程序。所以我无法弄清楚如何解决这个问题,请任何人帮忙。

【问题讨论】:

    标签: c# wcf client-server httpclient wcf-client


    【解决方案1】:

    本质上,服务是每个客户端自己的实例。使用ConcurrencyMode,您可以进行调整。

    看看这个http://msdn.microsoft.com/en-us/library/system.servicemodel.servicebehaviorattribute.concurrencymode.aspx

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-24
      • 2010-11-16
      相关资源
      最近更新 更多