wcf 双工

服务器

[ServiceContract(Namespace="http://www.artech.com/", CallbackContract = typeof(ICallback))]

服务接口加入CallbackContract

//添加回调接口,用户客户端回调的实现,客户端代理会自动生成这个接口。

public interface ICallback
{
[OperationContract(IsOneWay=true)]
void DisplayResult(double x, double y, double result);
}

[OperationContract(IsOneWay=true)]
void AddTest(double x, double y);

public void AddTest(double x, double y)
{

double result = x + y;

//回调客户端接口的实现方法。
ICallback callback = OperationContext.Current.GetCallbackChannel<ICallback>();
callback.DisplayResult(x, y, result);

}

客户端

实现接口

class CalculateCallback : IBLLServiceCallback
{

public void DisplayResult(double x, double y, double result)
{
Console.WriteLine("x + y = {2} when x = {0} and y = {1}", x, y, result);
}
}

调用

InstanceContext instanceContext = new InstanceContext(new CalculateCallback());

demoClient.AddTest(1,2);

时间: 2024-10-12 01:42:19

wcf 双工的相关文章

Wcf 双工通信的应用

概述 双工(Duplex)模式的消息交换方式体现在消息交换过程中,参与的双方均可以向对方发送消息.基于双工MEP消息交换可以看成是多个基本模式下(比如请求-回复模式和单项模式)消息交换的组合.双工MEP又具有一些变体,比如典型的订阅-发布模式就可以看成是双工模式的一种表现形式.双工消息交换模式使服务端回调(Callback)客户端操作成为可能. 在Wcf中不是所有的绑定协议都支持回调操作,BasicHttpBinding,WSHttpBinding绑定协议不支持回调操作:NetTcpBindin

wcf双工通信

一直以为感觉双工没弄懂,着实觉得很惆怅,在网上了解下双工的一些特点,直接上代码,以便以后项目中用的着: service层: ? 1 定义一个IDuplexHello服务接口 ? 1 2 3 4 5 6 7 8 9 10 11 [ServiceContract(       Name = "DuplexHello",       Namespace = "http://microsoft.wcf.documentation",       CallbackContra

WCF双工模式

双工模式 描述:双工模式建立在答复模式和单向模式的基础之上,实现客户端与服务端相互的调用. 相互调用:以往我们只是在客户端调用服务端,然后服务端有返回值返回客户端,而相互调用不光是客户端调用服务端,而且服务端也可以调用客户端的方法. 1.添加WCF服务 Service2.svc,并定义好回调的接口,服务器端接口IService2.cs: using System; using System.Collections.Generic; using System.Linq; using System.

5 wcf双工

1 创建两个项目 Wcf_WsDual_Service   Wcf_WsDual_Client 2 Wcf_WsDual_Service   项目中创建 LoginService.cs 的wcf文件 using System.ServiceModel; namespace Wcf_WsDual_Service { // 注意: 使用"重构"菜单上的"重命名"命令,可以同时更改代码和配置文件中的接口名"ILogin". //注意此处构造函数里面的回

wcf双工通讯遇到的问题

1.向ChannelFactory提供的InstanceContext包含未实现CallbackContractType的问题 通过添加服务引用生成的客户端代码, public class CallbackHandler : ICalculatorDuplexCallback 这里的接口必须是添加服务引用添加出来的,using Client.ServiceReference1; 2.“在消息传输完成以前关闭会话” 这个问题是在测试的时候发现的,我在测试代码里也写了注释.分析过后发现,原来我们将p

WCF系列之双工通信

WCF双工通信允许客户端调用服务器端,也允许通过回调,实现服务器端调用客户端,并不是所有的协议都支持双工通信,比如HTTP协议是不支持双工通信的. 我们来看一下契约的定义,其中在ServiceContract指定了CallbackContract,定义了ICalculateCallback,回调契约不需要指定为ServiceContract,但是方法要标记为OperationContract,可以看到服务契约和回调的方法均指定为IsOneWay=true,返回值都是void. 下一步,再来看一下

利用WCF的双工通讯实现一个简单的心跳监控系统 z

利用WCF的双工通讯实现一个简单的心跳监控系统 http://www.cnblogs.com/zuowj/p/5761011.html 何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态,就好比医院里面的心跳监视仪一样,能够随时显示病人的心跳情况. 心跳监控的目的是什么? 与医院里面的心跳监视仪目的类似,监控程序运行状态,一旦出现问题(比如:一些自动运行的服务.程序等突然停止运行了),那么心跳监控系统就能“感 知到”并及时的显示在监控界面上,同时可以通过微信.短信告之相关的人员,以

利用WCF的双工通讯实现一个简单的心跳监控系统

何为心跳监控系统? 故名思义,就是监控某个或某些个程序的运行状态,就好比医院里面的心跳监视仪一样,能够随时显示病人的心跳情况. 心跳监控的目的是什么? 与医院里面的心跳监视仪目的类似,监控程序运行状态,一旦出现问题(比如:一些自动运行的服务.程序等突然停止运行了),那么心跳监控系统就能“感知到”并及时的显示在监控界面上,同时可以通过微信.短信告之相关的人员,以便他们及时处理程序异常,从而避免一些自动运行的服务.程序等突然停止运行而造成的一系列损失 心跳监控系统实现的思路是怎样的? 核心技术:WC

Wcf双向通信

创建服务契约 [ServiceContract(SessionMode = SessionMode.Required, CallbackContract = typeof(ICallBack))] public interface IUser { [OperationContract] string GetName(string name); } 回调 public interface ICallBack { [OperationContract(IsOneWay=true)] void Pri