WCF:更新服务参考提供重复的配置条目
Posted
技术标签:
【中文标题】WCF:更新服务参考提供重复的配置条目【英文标题】:WCF: Updating Service Reference gives duplicate config entries 【发布时间】:2010-12-24 18:53:40 【问题描述】:我有一个 WPF 应用程序,它使用对 WCF 服务的服务引用。在对服务进行更新时,我需要更新服务引用,所以我右键单击它并点击“更新服务引用”。
这样做会导致客户端项目的 App.config 文件中出现重复条目。
它在 wsHttpBinding 下复制了一个绑定 - 添加一个名称中带有后缀编号的相等条目:WSHttpBinding_ISomeService --> WSHttpBinding_ISomeService1
。
它复制了 binding 下的端点定义,这样每个 wsHttpBinding 都有一个端点。除了名称之外,这也是一个纯粹的重复。
为什么会重复配置?不就是要更新名字吗?我怎样才能让它停止?
【问题讨论】:
【参考方案1】:这在我们身上也发生过几次。
你需要删除重复的,否则它会在运行时崩溃。客户端在配置文件中查找它应该向接口(WCF 合约 X)发送请求的位置,找到多个,然后崩溃。
【讨论】:
是的,我已经看到了.. 还可以设置绑定名称,以便使用一个特定的绑定,因此添加的新绑定将被忽略。但我希望不要创建重复项 - 如果可能的话..你知道为什么会发生吗?有什么办法可以预防吗?..【参考方案2】:您使用的是哪个版本的 Visual Studio?这是一个已知的错误,已在 VS2010 中修复。查看this link!
【讨论】:
【参考方案3】:一种解决方法是将服务代理(Web 引用)放在它自己的 DLL 中并从主项目中引用它。
当您执行Update Referene
时,它不会触及您 web.config 中的服务代理配置,并且作为奖励,如果您需要将默认配置与默认配置进行比较,您将拥有一个具有最新服务代理配置的项目你实际上在 web.config 中有
还有一个好处是,如果您有一个服务代理引用另一个服务代理,它将共享类型
MAIN DLL > ServiceAgent1 DLL > ServiceAgent2 DLL
如果 ServiceAgent1 和 ServiceAgent2 具有共享类型,您将不会得到两个生成的重复类
【讨论】:
【参考方案4】:code-zoop 说这个已知的错误在 VS2010 中得到解决,但我也在 VS2010 中得到它。
当我手动修改 App.config 中 basicHttpBinding 的 MaxReceivedMessageSize 属性(和其他属性)的默认值时发生(根据这篇文章:WCF - How to Increase Message Size Quota)
只是想我会提到这也发生在 VS2010 中。目前,我正在接受 Shiraz Bhaiji 的建议并删除重复项,这似乎暂时有效。
【讨论】:
还有我:***.com/questions/4625743/…以上是关于WCF:更新服务参考提供重复的配置条目的主要内容,如果未能解决你的问题,请参考以下文章
在 app.config 文件中配置 wcf 超时 [重复]