关于IIS寄宿WCF服务,客户端不能生成代理类

时间:2023-12-15 22:02:26

  我在使用VS2010写好WCF的Web服务后,部署在IIS7.0上,可以在IE9上进行访问,并且能显示XML数据,如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

关于IIS寄宿WCF服务,客户端不能生成代理类

  然后我在项目的客户端进行服务的添加引用,如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

  VS2010自动生成代理类,但是生成不成功,Reference.cs文件内容是空的,打开项目的Service References文件夹下Calculator文件夹,如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

关于IIS寄宿WCF服务,客户端不能生成代理类

  既然生成不成功,我就不能在客户端通过代理类的形式调用WCF服务,想想不可能自己手动写这种机器生成的代码,然后看了资料说明,VS2010提供了使用SvcUtil.exe工具来生成WCF客户端代理类的问题。在安装VS2010后,你的C盘中有两个SvcUtil.exe工具,一个3.0版本,一个是4.0版本,怎么知道工具的版本。可以右键鼠标属性,查看详细信息,使用SvcUtil.exe工具4.0版本,否则使用3.0版会出错,3.0版本是针对VS2008。如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

但是在使用SvcUtil.exe工具时,弹出的界面回稍纵即逝,所以需要把SvcUtil.exe工具添加VS2010工具管理中,在VS2010界面菜单、工具、外部工具、添加,进行操作,添加的版本一定要是4.0版的SvcUtil.exe,如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

   然后再VS2010菜单栏、工具栏中选择SvcUtil工具,输入WCF服务地址,进行生成,如下图

关于IIS寄宿WCF服务,客户端不能生成代理类

  两个生成的文件是放在了你的解决方案目录下,把这两个文件放到客户端项目目录下,并把output.config文件中的内容复制到需要的配置文件中,或者直接把output.config名字改为app.config或web.config(根据你的需要),然后客户端就可以使用代理类访问WCF服务。