WCF服务引用的两种方法

一、添加服务引用

在项目中单击右键,选择添加服务引用

WCF服务引用的两种方法_第1张图片

出现如下的对话框

WCF服务引用的两种方法_第2张图片

一般情况下,填写完下面的对话框就可以点击确定,生成代理类了,但有的时候,我们需要对代理类对特殊的设置,比如我们要生成异步操作,要更改字典集合为数组等,这时候可以点击上图中左下角的高级按钮。出现如下的对话框:

WCF服务引用的两种方法_第3张图片

经过上面的处理,就能生成代理类了,但是通过此种方法产生代理类存在一个问题,这个问题和 WCF联系不大,但还是比较重要的,比如服务端是java开发的,且采用的Soap1.1协议,那么采用上面这种方法,将无法产生匹配soap1.1的代 理类,导致在调用服务的时候,出现如下的异常:

SOAP   版本可能不匹配:   出现意外的   Envelope   命名空间   http://schemas.xmlsoap.org/wsdl/。应为   http://schemas.xmlsoap.org/soap/envelope/。

这个是我在xml web service中的添加服务中发现的,新版本的添加服务引用仍热没有指定协议的设置。在xml web service中,解决上面问题的办法是采用wsdl.exe,然后指定参数/protocol:SOAP

参考地址:https://www.cnblogs.com/systemnet123/archive/2013/04/24/3041192.html

二、生成代理类

2.1电脑启动菜单处,以管理员身份运行下面的选项:

WCF服务引用的两种方法_第4张图片

2.2点击开发人员命令提示符框:

输入内容:svcutil http://192.168.173.157:51688/WCFServices/ /out:D://Work//WcfServices.cs /targetClientVersion:Version35 /syncOnly

WCF服务引用的两种方法_第5张图片

2.3生成成功会输出内容:

正在生成文件...
D:\Work\WcfServices.cs
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\output.config

2.4说明

参数:  “D://Work//WcfServices.cs”   ,是指生成的代理类输出存放到的地址
参数:  “D://Work//output.config”   ,是指存放到调用WCF服务程序目录下的配置文件的输出存放地址
参数:  “http://192.168.173.157:51688/WCFServices/”   ,是指WCF服务的地址

你可能感兴趣的:(C#,WCF)