在 VS 2010 中更新 WCF 服务对 WebService 问题的引用

Posted

技术标签:

【中文标题】在 VS 2010 中更新 WCF 服务对 WebService 问题的引用【英文标题】:Update WCF service reference to WebService issue in VS 2010 【发布时间】:2012-10-01 04:26:09 【问题描述】:

我当前的项目使用的是 VS 2010。我是 WCF 的新手。我以前使用过 WebServices,但我从来不需要生成实际的代理。我正在使用 WCF 服务引用调用 Web 服务的当前项目。相当简单明了。我添加了一个新的服务参考,并且在初始设置中一切正常。

更新 WSDL 后,我只需右键单击服务引用并选择“更新引用”。这样做之后,现在有重复的对象名称,并附加了数字“1”。比如:

从 WSDL 结果初始生成:

GetWidget (getWidgetRequest)
GetWidgets (getWidgetRequest)
GetWidgetGroups (getWidgetRequest)

更新后,我现在有了这个:

GetWidget (getWidgetRequest)
GetWidgets (getWidgetRequest)
GetWidgetGroups (getWidgetRequest)

GetWidget1 (getWidgetRequest1)
GetWidgets1 (getWidgetRequest1)
GetWidgetGroups1 (getWidgetRequest1)

所以现在我必须使用 GetWidget1 方法来使用“更新”服务方法。我的问题是:

    有没有办法覆盖以前的方法而不生成新的类型来适应更新? 我是否必须在每次更新 WSDL 时手动清理它? 我是否错误地更新了服务参考?我需要使用 svcutil.exe 吗?

我在以 .datasource 结尾的服务引用中找到了 4 个文件。它们都有新的类型名称(GetWidget1.datasource、GetWidgetGroups1.datasource 等)。以下是文件内容的示例:

<GenericObjectDataSource DisplayName="GetWidget1" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
   <TypeInfo>GetWidget1, Service References.WidgetService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

我们使用的是 Visual Studio 2010 版本 10.0.40219.1 SP1Rel

【问题讨论】:

【参考方案1】:

您使用的是 vs 2010?

这是旧版本中的错误,但已在 2010 年修复 - 请参阅 here

【讨论】:

似乎很多人在 VS2010 中仍然得到这个 - 不确定原因是什么,但您是否尝试过删除所有引用并阅读它? 有趣的是,我使用的是 VS 2010。这似乎是问题所在,但我不确定为什么它仍然会发生。我相信我已经应用了所有的服务包和更新。 是的,我已删除它(服务引用)并重新读取它(甚至使用了新名称),但我仍然得到重复的绑定和端点。真让人抓狂。 尝试删除引用,然后删除您的 ServiceReferences.ClientConfig 文件 - 这似乎是问题所在。 在我尝试之前,我在实际的服务引用中发现了 4 个我以前没有看到的数据源文件。它们被恰当地命名为:GetWidget1.datasource。我将更新上面的帖子以显示内容。

以上是关于在 VS 2010 中更新 WCF 服务对 WebService 问题的引用的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有许多功能的大型 WCF 服务导入 VS 2010?

每次更新服务引用时,如何防止 VS2010 创建新绑定?

WCF常见类型不重用

为 WCF 负载测试加载 UI Vs Visual Studio 2010 [关闭]

在 WCF 数据服务应用程序中迁移实体框架 6 和 VS2013 后无法更新或删除

新电子商务网站的 WCF vs WEB api vs Web 服务 [重复]