首页 文章

WCF多个客户端

提问于
浏览
0

我目前正在研究即时通讯应用程序 . 一旦客户端连接到服务器并发送一个消息,它就可以正常工作 . 第二个客户端连接,两个客户端聊天,一切正常 . 当2个客户端同时发送一个消息时出现问题 . 然后两个客户端冻结(在调试中我得到一个超时)但是msg对聊天中的其他客户端显示正常 .

这是服务器的行为:

[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]

app.config行为:

<behavior name="Behave">
            <serviceThrottling maxConcurrentCalls="100"
 maxConcurrentSessions="100"
 maxConcurrentInstances="100" />
          </behavior>

对于WCF我是新手,我不确定我完全理解它 . 我试过改变一些东西,但似乎没有任何帮助 . 任何形式的帮助将不胜感激 . 如果需要进一步的代码,我会根据要求提供 .

1 回答

  • 0

    我认为你应该调用后台Thread,而不是同一个线程 . 这是交易:

    • 你应该定义 private SynchronizationContext _SyncContext;

    2.并在构造函数中:

    _SyncContext = SynchronizationContext .Current;
    

    3.并在您的客户端将此代码添加到方法事件处理程序中 .

    Thread thread = new Thread(()=>
    {
    
        SendOrPostCallBack callback = new SendOrPostCallback(arg=>
        {
    
    
        ** your logic here need to be marshalled**
        }
    
        _SyncContext.Send(callback, null); 
    }
    

    告诉我它是否与你合作兄弟 . 快乐的编码 .

相关问题