c# - WebService 不会通过 ServiceReference 更新

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

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

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

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

在 VisualStudios ObjectBrowser 中查看 ServiceReference 会得到相同的结果:未经修改的我的 Web 服务。

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

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

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

最佳答案

解决问题的一种方法(好吧,这可能不是最好的解决方案,甚至可能是最糟糕的解决方案,但我确信它会起作用)是进行一系列清理:

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

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

关于c# - WebService 不会通过 ServiceReference 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8655695/

相关文章:

c# - 使用 C++ 在 C# 位图上绘制

c# - LINQ 是否可以动态添加 where 子句

c++ - VS2010 : Compile a C++ Project in 64 bit

asp.net - 在 Silverlight HttpWebRequest 中禁用缓存

silverlight - WebClient.UploadStringAsync 未正确将数据 POST 到服务器

wpf - 当由于空值而无法评估绑定(bind)时,使用默认值

c# - 在立即窗口中查看 log4net 的调试消息

c# - 尝试获取 ICacheManager 类型的实例时发生激活错误, key \"\"“

visual-studio - 如何在 Visual Studio 调试器中查看段偏移内存地址?

c - 在 Visual Studio 2015 中运行 C 项目时出现错误 LNK1120 3 无法解析的外部