WCF 并发模式.多个

本文关键字:多个 模式 并发 WCF | 更新日期: 2023-09-27 18:32:31

我不知道如何检查我是对还是错,所以你的帮助会很棒。

答:根据我的理解,IsOneWay=true = 客户端不想等待方法结束。 因此,服务将在需要时执行此方法。但是,在某些情况下,服务是否会使用多线程来执行该方法?

B. 当我使用 ConcurrencyMode.Multiple 时,使用 IsOneWay=true 和 IsOneWay=false 有什么区别。

WCF 并发模式.多个

并发模式和消息传递模式没有那么直接的关系。

IsOneWay 会影响客户端和服务器的交互方式。

并发模式是服务器端问题,客户端不知道此设置。

来自: http://msdn.microsoft.com/en-us/library/ms751496.aspx

根据定义,HTTP是一种请求/响应协议;当请求 做出,返回响应。即使对于单向服务也是如此 通过 HTTP 公开的操作。调用操作时, 服务在服务之前返回 HTTP 状态代码 202 操作已执行。此状态代码表示请求具有 已被接受处理,但尚未处理 完成。调用操作的客户端阻止,直到它 从服务接收 202 响应。这可能会导致一些 使用 配置为使用会话的绑定。wsHttpBinding 绑定 此示例中使用的默认配置为使用会话 建立安全上下文。默认情况下,会话中的消息是 保证按发送顺序到达。以 这样,当发送会话中的第二条消息时,它不是 已处理,直到处理完第一条消息。结果 这是客户端没有收到 202 响应 消息,直到处理上一条消息 完成。因此,客户端似乎在每个后续内容上都阻塞 操作调用。若要避免此行为,此示例将 运行时将消息并发调度到不同的实例 加工。该示例将 InstanceContextMode 设置为 PerCall,以便 每条消息可以由不同的实例处理。并发模式 设置为"多个"以允许多个线程调度消息 一次。