博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WCF系列教程之WCF消息交换模式之单项模式
阅读量:6194 次
发布时间:2019-06-21

本文共 2172 字,大约阅读时间需要 7 分钟。

1、使用WCF单项模式须知

(1)、WCF服务端接受客户端的请求,但是不会对客户端进行回复

(2)、使用单项模式的服务端接口,不能包含ref或者out类型的参数,至于为什么,请参考

(3)、使用单项模式的服务端接口没有返回值,返回类型只能为void

(4)、通过设置OperationContract契约的IsOneWay=True可以将满足要求的方法设置为这种消息交换模式

 

2、代码实例

(1)、第一步

i、首先建一个名为IService的类库作为服务层,新建IOneWay接口

ii、导入System.ServiceModel命名空间

iii、在IOneWay接口中定义一个符合单项模式要求的方法

using System;using System.Collections.Generic;using System.Linq;using System.ServiceModel;using System.Text;using System.Threading.Tasks;namespace IService{    [ServiceContract]    public interface IOneWay    {        [OperationContract(IsOneWay=true)]        void HelloWorld(string name);    }}

(2)、第二步

i、建一个Service类库实现IService中的单项模式的方法

using IService;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;namespace Service{    public class OneWay : IOneWay    {        void IOneWay.HelloWorld(string name)        {            Thread.Sleep(6000);        }    }}

ok,服务初始化成功

(3)、第三步

创建WCF宿主,这里因为本地以及有WCF宿主了,所以这里就不建了,不知道怎么建的话,参考,所以将服务通过配置配置文件发布到WCF宿主中

 

(4)、第四步

i、重新生成解决方案,打开Host.exe,打开WCF服务,浏览器中输入http://localhost:8000/OneWay/

ok,服务发布成功

 

(5)、第五步

i、创建客户端程序,并通过微软的svcutil工具生成UserInfoService服务的客户端代理类,开始菜单/Microsoft Visual Studio 2012/Visual Studio Tools/Visual Studio 2012开发人员命令提示工具,定位到当前客户端l路径,输入命令:svcutil  /o:OneWay.cs,生成客户端代理类,生成成功之后,将文件添加到项目中.

ii、调用代理类,代码如下:

Console.WriteLine("****************单向通讯服务示例*******************");            OneWayServiceClient proxy = new OneWayServiceClient();            Console.WriteLine("方法调用前时间:" + System.DateTime.Now);            proxy.HelloWorld("WCF");            Console.WriteLine("方法调用后时间:" + System.DateTime.Now);            Console.Read();

虽然服务器方法的时间进程暂停了6s,但客户端的表现出的只是单向的,并没有等待服务器的时间,也就是服务器并没有像客户端发送响应的消息。

 

iii、通过Vs提供的WCF测试工具,来对WCF服务进行测试,输入服务地址

,点击调用,瞬间服务端返回

我们发现只有请求消息,没有返回的消息,说明服务器并没有对此作出任何反应。

 

转载于:https://www.cnblogs.com/GreenLeaves/p/6842782.html

你可能感兴趣的文章
详解 Discuz 的 PHP经典加密解密函数 authcode
查看>>
Mysql XX 天之内
查看>>
AE创建气泡式的提示框(VB.Net和C#源码)
查看>>
Oracle如何删除表中重复记录
查看>>
Application Bar
查看>>
nginx 是如何处理访问请求的
查看>>
wget参数用法详解
查看>>
安卓自学应用程序生命周期法
查看>>
【COCOS2D-X(1.X 2.X)】Json(cpp版)以及添加自定义字体库教程
查看>>
使用curl命令查看访问url的时间
查看>>
whois
查看>>
python添加环境变量
查看>>
Linux 新手容易犯的 7 个错误
查看>>
火狐浏览器快捷操作
查看>>
hdu 3117 Fibonacci Numbers 矩阵快速幂+公式
查看>>
spoj3105 MOD - Power Modulo Inverted(exbsgs)
查看>>
DP-01背包 (题)
查看>>
WinForm中跨线程操作控件
查看>>
CODING 敏捷实践完全指南
查看>>
unittest测试框架和测试报告的输出实例(一)
查看>>