我不知道如何判断我是对还是错,所以你的帮助会很棒。
A。根据我的理解,IsOneWay = true =客户端不想等待方法结束。所以服务会在他想要的时候执行这个方法。但是,在某些情况下,服务是否会使用多线程来执行该方法?
B 当我使用ConcurrencyMode.Multiple时,使用IsOneWay = true& IsOneWay =假。
答案 0 :(得分:3)
ConcurrencyMode和Messaging Pattern没有直接关系。
IsOneWay 会影响客户端和服务器的交互方式。
ConcurrencyMode 是服务器端问题,客户端不知道此设置。
答案 1 :(得分:1)
来自:http://msdn.microsoft.com/en-us/library/ms751496.aspx
根据定义,HTTP是请求/响应协议;当请求是 制作,回复。即使对于单向服务也是如此 通过HTTP公开的操作。当调用该操作时, service在服务之前返回HTTP状态代码202 操作已执行。此状态代码表示请求具有 已被接受处理,但处理尚未进行 完成。调用操作的客户端阻塞它 从服务接收202响应。这可能会导致一些 使用a发送多个单向消息时的意外行为 配置为使用会话的绑定。 wsHttpBinding绑定 此示例中使用的配置为默认使用会话 建立安全背景。默认情况下,会话中的消息是 保证按照发送顺序到达。因为 这样,当发送会话中的第二条消息时,它不会发送 处理直到第一条消息被处理完毕。的结果 这是客户端没有收到202的响应 消息,直到处理上一条消息为止 完成。因此,客户似乎在每个后续阻止 操作电话。为避免此行为,此示例配置 运行时将消息并发地分派给不同的实例 处理。该示例将InstanceContextMode设置为PerCall,以便 每条消息都可以由不同的实例处理。 ConcurrencyMode 设置为“多个”以允许多个线程分派消息 一次。