5

我有一个 WPF 应用程序,它使用对 WCF 服务的服务引用。在对服务进行更新时,我需要更新服务引用,所以我右键单击它并点击“更新服务引用”。

这样做会导致客户端项目的 App.config 文件中出现重复条目​​。

  • 它在wsHttpBinding下复制了一个绑定——在 name: 中添加一个带有后缀编号的相等条目WSHttpBinding_ISomeService --> WSHttpBinding_ISomeService1
  • 它复制了绑定下的端点定义,这样每个wsHttpBinding都有一个端点。除了名称之外,这也是一个纯粹的重复。

为什么会重复配置?不就是要更新名字吗?我怎样才能让它停止?

4

4 回答 4

3

您使用的是哪个版本的 Visual Studio?这是一个已知的错误,已在 VS2010 中修复。看看这个链接

于 2009-12-28T08:34:58.430 回答
2

code-zoop说这个已知的错误在 VS2010 中得到解决,但我也在 VS2010 中得到它。

当我手动修改 App.config 中 basicHttpBinding 的 MaxReceivedMessageSize 属性(和其他属性)的默认值时发生(根据这篇文章:WCF - 如何增加消息大小配额

只是想我会提到这也发生在VS2010中。目前,我正在接受Shiraz Bhaiji的建议,只是删除副本,这似乎暂时有效。

于 2011-04-12T09:26:42.183 回答
1

这也发生在我们身上几次。

您需要删除重复项,否则它将在运行时崩溃。客户端在配置文件中查找它应该向接口(WCF 合约 X)发送请求的位置,找到多个,然后崩溃。

于 2009-12-10T20:32:54.963 回答
1

一种解决方法是将服务代理(Web 引用)放在它自己的 DLL 中并从主项目中引用它。

当您这样做时,它不会触及您的 web.config 中的服务代理配置,Update Referene并且作为奖励,如果您需要将默认配置与您在 web 中实际拥有的配置进行比较,那么您将拥有一个具有最新 serviceagent 配置的项目。配置

还有一个好处是,如果您有一个服务代理引用另一个服务代理,它将共享类型

MAIN DLL > ServiceAgent1 DLL > ServiceAgent2 DLL

如果 ServiceAgent1 和 ServiceAgent2 具有共享类型,您将不会得到两个生成的重复类

于 2010-09-30T04:55:30.430 回答