WCF 客户端提示 因为它具有类型为 system.serviceModel.channels.message 的参数或返回值 错误

因为我已经解决了这个问题,但是忘记把错误截图下来了.

先说一下我WCF架构, 我都是用.net 4.0写的客户端和服务端, 采用net.tcp协议, 通过svcutil.exe 从服务器下载元数据,在我开发电脑上面都能正常工作,可是我部署好服务端以后,将客户端在客户电脑上面运行的时候就报错误,就是标题中的那种错误.但是有的客户又不会,经过我查找资料,在微软网站看到了这样一句话:" 该工具不支持多目标。如果希望从 svcutil.exe 生成 .NET 4 项目,则必须使用 .NET 4 SDK 中的 svcutil.exe。若要生成 .NET 3.5 项目,请使用 .NET 3.5 SDK 中的可执行文件。"  (https://msdn.microsoft.com/zh-cn/library/aa347733%28v=vs.100%29.aspx?f=255&MSPPError=-2147217396)

我立即打开SDK目录,查看版本结果发现我的电脑和客户的电脑不一样的sdk

我的电脑:

比客户的多了V10.0A  然后我查看我的环境变量,里面有指定v10.0A的路径,我猜测我运行的scvutil.exe应该就是v10.0A里面的了,而客户没有这个sdk所以就报错.

于是在C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\NETFX 4.0 Tools  里面找到了一个32位的SVCUTIL.exe工具,从新用4.0版本的生成元数据,客户端就正常工作了.

 

posted @ 2018-06-08 10:58  小熊V5  阅读(371)  评论(0)    收藏  举报