WCF 向后兼容性问题
Posted
技术标签:
【中文标题】WCF 向后兼容性问题【英文标题】:WCF Backward Compatibility Issue 【发布时间】:2010-09-05 18:51:55 【问题描述】:我有一个必须从 .net 2.0 项目引用的 WCF 服务。
我尝试使用“添加网络引用”方法来引用它,但它弄乱了参数。
例如,我在服务中有一个方法需要传入char[]
,但是当我添加网络引用时,该方法需要int[]
。
然后我尝试设置 svcutil 并且它工作......有点。 我只能通过向我的 .net 2.0 项目添加一堆 .net 3.0 引用来编译服务类。建筑师对此并不满意,所以我不得不这样做(而且可能也是最好的)。
所以我想知道是否有人对我如何设置 .net 2.0 项目以引用 WCF 服务有任何指示或资源。
【问题讨论】:
【参考方案1】:您需要编辑 WSDL 的实例之一。首先是一个有用的工具
http://codeplex.com/storm
【讨论】:
【参考方案2】:您使用的是什么绑定 - 我认为如果您坚持使用 basicHttp 绑定,您应该能够使用 .net 2 项目中的“添加 Web 引用”方法生成代理?
如果您发布合同/接口定义可能会有所帮助?
干杯 理查德
【讨论】:
【参考方案3】:感谢资源。它确实帮助我测试了 web 服务,但它对在我的 .net 2.0 应用程序中使用 WCF 服务没有多大帮助。
我最终做的是回到架构师那里并解释我需要引用的 3.0 dll 被编译回以在 2.0 CLR 上运行。我们不一定喜欢这个解决方案,但我们现在会采用它,因为似乎没有太多可行的替代方案
【讨论】:
【参考方案4】:我使用的是 basicHttp 绑定,但问题实际上出在 XMLSerializer 上。它不能正确识别 WCF 生成的 wsdl(即使使用 basicHttp 绑定),用于除基本值类型之外的任何内容。
我们通过添加对 3.0 dll 的引用并使用 datacontract 序列化程序解决了这个问题。
【讨论】:
以上是关于WCF 向后兼容性问题的主要内容,如果未能解决你的问题,请参考以下文章