我目前正在开发即时消息应用程序。一旦客户端连接到服务器并发送一个味精,它工作得很好。第二个客户端连接,两个客户聊天,一切都完美。当两个客户端同时发送一个消息时就会出现问题。然后两个客户端都冻结(在调试中我得到一个超时),但聊天中的其他客户端显示的消息很好。WCF多个客户端
这是服务器的行为:
[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode = InstanceContextMode.Single)]
的app.config行为:
<behavior name="Behave">
<serviceThrottling maxConcurrentCalls="100"
maxConcurrentSessions="100"
maxConcurrentInstances="100" />
</behavior>
我是一个新手,当谈到WCF,我不知道我完全理解它。我尝试过改变东西,但似乎没有任何帮助。任何形式的帮助将不胜感激。 如果需要进一步的代码,我会根据要求提供。
你是否尝试更改InstanceContextMode = InstanceContextMode.PerCall? –
@NadeemKhoury我已经试过了,但我需要使用单身。如果我使用PerCall或PerSession,取决于两者中的哪一个,那么我的应用程序会变得混乱。会发生什么情况是,2个客户端(或任何其他客户端)将无法聊天,因为每个客户端都会创建一个新对象。他们能够发送消息,即使他们中的任何一个都不会被另一个人看到。我不确定我的解释是否足够理解应用程序的行为,所以请让我知道它是否不适用。 – Chogart
翻遍一切。这只是2位客户冻结的UI。这就是它。我认为问题在于同步。 – Chogart