我有一个使用对WCF服务的服务引用的WPF应用程序。在对服务进行更新时,我需要更新服务引用,因此我右键单击它并点击“更新服务引用”。
执行此操作会导致客户端项目的App.config文件中出现重复条目。
WSHttpBinding_ISomeService --> WSHttpBinding_ISomeService1
。 为什么要复制配置?是不是应该更新名称?我怎么能让它停下来?
答案 0 :(得分:3)
您使用的是哪个版本的Visual Studio?这是一个已知的错误,已在VS2010中修复。查看this link!
答案 1 :(得分:2)
code-zoop 表示这个已知错误在VS2010中得到了解决,但我也在VS2010中得到了它。
当我手动修改App.config中basicHttpBinding的MaxReceivedMessageSize属性(和其他)的默认值时发生(根据这篇帖子:WCF - How to Increase Message Size Quota)
我想提一下,这也发生在VS2010中。目前,我正在接受 Shiraz Bhaiji 的建议,只是删除了副本,这似乎暂时正在发挥作用。
答案 2 :(得分:1)
这也有几次发生在我们身上。
您需要删除重复项,否则它将在运行时崩溃。客户端在配置文件中查找它应该向Interface发送请求的位置(WCF契约X),找到多个请求并崩溃。
答案 3 :(得分:1)
一种解决方法是将服务代理(Web引用)放在自己的DLL中,并从主项目中引用它。
当你执行Update Referene
时,它不会触及web.config中的服务代理配置,如果您需要比较默认配置,您将获得具有最新serviceagent配置的项目你在web.config中实际拥有的东西
还有一个好处,如果您有一个服务代理引用另一个服务代理,它将共享类型
MAIN DLL > ServiceAgent1 DLL > ServiceAgent2 DLL
如果ServiceAgent1和ServiceAgent2具有共享类型,则不会获得两个生成的重复类