在VS2008 SP1中WCF Tool的一些使用技巧
在这篇文章中,我将向大家分享一下在VS2008 SP1中WCF工具的一些使用技巧,希望能帮助大家更好的使用它们。
WCF Test Client: 如何更改存放客户端配置临时文件和assembly临时文件的文件夹
在VS2008 SP1之前,WCF Test Client将客户端配置临时文件和assembly临时文件存放在“My Document”文件夹。当这个文件夹被设置到网络上的另一台电脑上,WCF Test Client可能会无法调用服务。错误信息如下:“An error occurred creating the configuration section handler for system.serviceModel/bindings: That assembly does not allow partially trusted callers…”。
在VS2008 SP1中,我们做了如下改进:
首先,我们将默认文件夹从“My Document”改成%temp%。%temp%文件夹被设置到网络上的可能性相对“My Document”要小很多。
其次,我们也提供了可以改变默认文件夹的命令行工具。你可以把文件夹从%temp%改成任意指定的文件夹,而且也可以恢复成%temp%。关于这些命令的具体格式请参考下面的贴图。
当svcutil的版本较老时, WCF Test Client无法添加服务
有时候,当svcutil.exe没有被正确安装或者安装的版本较老时(在Windows SDK v6.1文件夹中),WCF Test Client无法添加服务。错误信息如下:“Error: Unrecognized option ‘targetclientversion’ specified.”。
请先确认下列的版本信息:
- 在Windows SDK v6.0A文件夹中的SvcUtil.exe的版本号是3.0.4506.648或更高
- 在Windows SDK v6.1文件夹中的SvcUtil.exe的版本号是3.0.4506.648或更高
- WcfTestClient.exe 的版本号是9.0.588.0或更高
如果svcutil.exe的版本号是老的或者没有被正确安装,解决的方法是:
- 安装最新的Windows SDK
- 或者从Windows SDK v6.0A 文件夹复制svcutil.exe 到Windows SDK v6.1文件夹中
安装Biztalk Services SDK将在WCF Test Client中引入一个无法识别的endpoint
如果你安装了VS2008 SP1后再安装Biztalk Services SDK,Biztalk Services SDK会在machine.config文件的<system.serviceModel>中的<client>部分引入一个endpoint。
然后,每次在WCF Test Client中添加一个服务时,会生成一个无法识别的endpoint(服务合同是IMetadataExchange),而WCF Test Client如下图所示报错:“The contract ‘IMetadataExchange’ in clinet configuration does not match the name in service contract…”。
当你按下“OK”按钮,这个多余的“IMetadataExange (sb)”部分就会出现在服务节点内。如下图所示:
这并不会影响WCF Test Client的功能。当你需要用WCF Test Client测试不同的服务,你可以采用下面的方法来避免频繁的报错信息:
当你需要运行WCF Test Client测试服务时,注释掉下面所列的machine.config文件中的配置信息(文件路径:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG)。当你需要使用Biztalk Services SDK时,再恢复这些配置。
<client>
<endpoint address="" binding="relayBinding" bindingConfiguration="metadataExchangeRelayBinding"
contract="IMetadataExchange" name="sb" />
</client>
<bindings>
<relayBinding>
<binding name="metadataExchangeRelayBinding" />
</relayBinding>
</bindings>
某些时候VS2008 SP1的安装不当会导致Service Configuration Editor不能在Visual Studio中启动
A customer reported an issue, and I would like to share with you here.
我想在这里和大家分享一个客户报告的问题。
这个用户原来在他的电脑上安装过VS2008 SP1 Beta版、 .net3.5 SP1 Beta版 和Windows SDK v6.1。然后他安装了VS2008 SP1和.net3.5 SP1的正式版。他的安装过程可能有一些不恰当的步骤。
然后,他在Visual Studio 中用我们团队开发的WCF Service Library模板创建了一个WCF服务项目,他试着用右键菜单启动Service Configuration Editor(SvcConfigEdior.exe)编辑app.config文件,这时Visual Studio中弹出一个报错对话框:”Can not find C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\svcconfigeditor.exe”,如下图所示:
这里有两个问题:
- 在Windows SDK v6.0A文件夹中的 SvcConfigEditor.exe不见了
- 在安装了Windows SDK v6.1后,Windows SDK v6.0A 仍然被设置成缺省的 SDK,这导致Visual Studio还是试着从Window SDK v6.0A 下寻找SvcConfigEditor.exe
要解决以上问题,我建议使用“Windows SDK Configuration Tool”重新设置缺省的 SDK。
要避免以上问题,请在安装正式版本前确认已经卸载了所有的程序包括更新。