我有一个Windows服务(配置为与Windows上另一个应用程序的管道连接)托管的wcf服务,配置为
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession)]
每当客户端连接时,我都有一个构造函数,该构造函数获取调用方的Windows身份,然后获取回调。
现在在托管Windows服务的另一个文件中,我遍历Windows计算机上的所有用户,并希望能够访问该特定用户的回调。
因此,假设用户A和用户B现在在我的for循环中已连接到我的WCF服务,我首先要向用户A发送在循环中处理的某些数据,然后在下一个循环中向用户B发送数据(不同的数据然后将数据发送给用户A)。
如何保存和跟踪或引用不同的回调?
ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.PerSession)]
public class WCFService: IWCFService
{
private readonly IWCFServiceCallback callback;
public WCFService()
{
var primaryIdentity = OperationContext.Current.ServiceSecurityContext.PrimaryIdentity;
var windowsIdentity = OperationContext.Current.ServiceSecurityContext.WindowsIdentity;
this.callback = OperationContext.Current.GetCallbackChannel<IStatusServiceCallback>();
}