一、添加服务引用
在项目中单击右键,选择添加服务引用
出现如下的对话框
一般情况下,填写完下面的对话框就可以点击确定,生成代理类了,但有的时候,我们需要对代理类对特殊的设置,比如我们要生成异步操作,要更改字典集合为数组等,这时候可以点击上图中左下角的高级按钮。出现如下的对话框:
经过上面的处理,就能生成代理类了,但是通过此种方法产生代理类存在一个问题,这个问题和 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电脑启动菜单处,以管理员身份运行下面的选项:
2.2点击开发人员命令提示符框:
输入内容:svcutil http://192.168.173.157:51688/WCFServices/ /out:D://Work//WcfServices.cs /targetClientVersion:Version35 /syncOnly
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服务的地址