首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用oneWay调用通过NetNamedPipeBinding进行有序交付

使用oneWay调用通过NetNamedPipeBinding进行有序交付
EN

Stack Overflow用户
提问于 2010-12-27 04:49:11
回答 1查看 1.3K关注 0票数 0

是否可以使用namedPipe绑定来保证oneWay调用的有序传递?

我有一个使用namedPipe绑定进行通信的WCF服务/客户端。客户端公开了一个回调协定,其中回调中的所有方法都被标记为OneWay。像这样的东西

代码语言:javascript
复制
[ServiceContract(CallbackContract = typeof(IMyServiceCallback))]  
public interface IMyService  
{  
    [OperationContract]  
    void MyOperation();  
}

public interface IMyServiceCallback  
{  
   [OperationContract(IsOneWay=true)]
   void MyCallback1();

   [OperationContract(IsOneWay=true)]
   void MyCallback2();  
}  

在服务器端,MyOperation方法的实现总是先调用MyCallback1,然后调用MyCallback2,但我注意到,有时客户端接收调用的顺序不正确(先调用MyCallback2,然后调用MyCallback1)。

在互联网上搜索时,我发现here中提到的单向操作并不能保证消息的顺序,而且还有一种叫做reliableSession的东西可以保证消息的顺序。

因特网上用于可靠会话的所有示例都具有TCP绑定(并且没有一个具有NamedPipeBinding),并且tcpBinding还具有称为ReliableSession的属性,该属性在NetNamedPipeBinding上不存在。因此,我不确定可靠会话是否可以与NetNamedPipeBinding一起工作。

问题:

可靠的会话能与namedPipeBinding一起工作吗?如果是,是如何实现的?如果没有,有没有其他方法可以保证订单送达?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-12-27 05:51:24

http://msdn.microsoft.com/en-us/library/aa480191.aspx

介绍Windows Communication Foundation的可靠消息传递

..。

NetNamedPipeBinding建立在Windows操作系统对可靠消息传递和通过命名管道的可靠流的支持之上。因为命名管道是面向连接的,很容易支持会话,设计上是可靠的,并且通常不是桥接的,所以在这个绑定中不需要WS-RM支持。

可能的情况是,您的消息是按照服务器发送的顺序进行传递的,而后者正是您需要处理的。服务器可能正在并发运行,并且不保证有序调度。

再说一次,我可能错了。通过我上面的链接,您的合同和实现上有一些控制有序交付的attributes you can specify

This question也有更多的信息。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4535364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档