【问题标题】:WebService won't update through ServiceReferenceWebService 不会通过 ServiceReference 更新
【发布时间】:2012-01-29 03:40:52
【问题描述】:

我的 Visual Studio 解决方案中有两个项目:一个是 WcfService 应用程序项目,另一个是带有 ServiceReference 的普通 C# Silverlight 项目 本地访问网络服务。

除了我的 Web 服务中的更改在我的 SL 项目中不可见之外,基本上一切正常:

例如,如果我修改服务接口的 [DataContract] 类中的某些属性,则两个项目都编译得很好,但是在 SL 项目中访问 Web 服务时,我只有修改前的状态。

在 VisualStudios ObjectBrowser 中查看 ServiceReference 给了我相同的结果:我的 Web 服务没有修改。

我通过内置的自动“添加服务引用” 功能将 ServiceReference 添加到 SL 项目中。每次我修改 Web 服务时,我都会在 SL 项目中的服务参考上单击 “更新服务参考”,它成功但没有效果。 即使删除服务引用并再次添加它也不会向我显示具有更改属性的 Web 服务。

可能是因为我几天前重命名了服务项目 - 我从解决方案中卸载了服务项目,重命名了文件系统中的文件夹并将其作为“现有项目”再次添加到解决方案中。然后我重命名了服务文件(.svc & .svc.cs)和服务接口文件。 ==> 之后,除了我无法识别的修改之外,一切似乎都还可以正常工作?!此外,在向该服务添加 ServiceReference 时,我看到我重命名的两个文件的旧名称而不是新名称!?

有人知道这里发生了什么吗? 提前感谢您阅读这个冗长的问题;)

【问题讨论】:

  • 这听起来可能是个奇怪的问题,但你试过重启你的盒子吗?

标签: c# visual-studio silverlight web-services service-reference


【解决方案1】:

解决您的问题的一种方法(好吧,这可能不是最好的解决方案,甚至可能是最糟糕的解决方案,但我相信它会起作用)是做一堆清理工作:

  • 从您的 SL 项目中删除您的服务参考
  • 在您的文件系统上删除与您删除的服务引用相关的所有内容(即删除 SL 项目中的相关文件/文件夹 目录)
  • 还使用记事本打开您的 SL csproj(或 vbproj)文件并删除与服务引用相关的行(搜索 文件中的“服务参考”)
  • 从头开始创建一个新的 WcfService 应用程序项目,并向其中添加所需的内容(引用、文件...),以便它反映 您当前拥有的 WcfService 项目
  • 删除旧的 WcfService 项目
  • 编译您的新 WcfService 项目
  • 将您的新 WcfService 项目作为服务引用添加到您的 SL 项目中

好的,这样做会浪费一些时间,但它会起作用。

【讨论】:

  • 嘿,谢谢你的回答! :) 我已经在所有文件中搜索了与服务相关的内容——现在我发现我显然遗漏了一个文件:.svc 文件包含一行带有我的 Web 服务项目的旧名称。在重命名它之后,我在 SL 项目中的 Web 服务引用工作得很好!所以我从一开始就在做的事情 - 手动重命名和重新定位项目确实工作得很好 - 我只是忘了重命名上面提到的行:)
  • @ken2k:非常感谢您为回答我的问题所做的努力! :)
猜你喜欢
  • 2011-08-10
  • 1970-01-01
  • 1970-01-01
  • 2013-05-07
  • 2011-03-30
  • 2020-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多