本来是打算研究一下WCF中session相关的东西,想到前段时间用过一次SvcUtil生成客户端代理,为了巩固加深一下记忆,就想自己写一个例子,谁知道竟然连这个小工具在哪里都找不到了,更别提后续的使用了,又是一通折腾,,查资料翻书.........N小时后,算是基本解决了,赶紧留个“爪印”。
- 首先要在cmd下定位到SvcUtil.exe所在目录,由于我的环境是VS2010+Framework4,所以默认目录是C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin
- 输入命令SvcUtil+HTTP-GET地址或者元数据交换终结点地址,代理文件名可以使用/out指定不同的名字
这里有一点要注意,如果服务托管在IIS或WAS上,同时有可用的基于HTTP-GET的元数据共享的话,则运行命令:
SvcUtil http://localhost:9001/GigManagerService/GigService.svc /out:GigService.cs
如果是自托管服务,且启用了基于HTTP-GET的元数据发布方式,则可以注册如下基地址,然后公开包含一个MEX相对地址的与之匹配的元数据交换终结点:
http://localhost:8000
net.tcp://localhost:9001
启动宿主后,可以使用如下命令生成代理文件:
SvcUtil http://localhost:8000/MEX /out:GigService.cs
SvcUtil http://localhost:8000 /out:GigService.cs
SvcUtil net.tcp://localhost:9001/MEX /out:GigService.cs
但是还是有一个小小的疑问,不知道能不能指定代理文件输出的路径呢?