当多个客户端连接到WCF服务时,如何跟踪回调?

时间:2019-04-16 20:27:32

标签: c# windows wcf callback named-pipes

我有一个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>();          
        }

0 个答案:

没有答案