我的Visual Studio解决方案中有两个项目:一个是WcfService应用程序项目,另一个是带有ServiceReference的普通C#Silverlight项目,可以在本地访问Web服务。
基本上,除了我的SL项目中看不到我的Web服务中的更改之外,其他所有东西都可以正常工作:
例如,如果我修改了服务接口的[DataContract]类中的某些属性,则两个项目均编译良好,但是在SL项目中访问Web服务时,我只有修改前的状态。
在VisualStudios ObjectBrowser中查看ServiceReference会得到相同的结果:我的Web服务,无需修改。
我通过内置的自动“添加服务引用”功能将ServiceReference添加到SL项目。每次修改Web服务时,我都会在SL项目中的“服务引用”上单击“更新服务引用”,此操作成功但没有效果。即使删除服务引用并再次添加它,也不会向我显示具有更改属性的Web服务。
也许是因为几天前我重命名了Service Project-我从解决方案中卸载了Service Project,重命名了文件系统中的文件夹,然后将其作为“现有项目”再次添加到了解决方案中。然后,我重命名了服务文件(.svc和.svc.cs)和服务接口文件。 ==>之后,除了我无法识别的修改以外,一切似乎仍然可以正常工作?另外,在向该服务添加ServiceReference时,我会看到两个我重命名的文件的旧名称,而不是新名称!
有人知道这是怎么回事吗?
预先感谢您阅读这个长问题;)
最佳答案
解决您的问题的一种方法(好的,这可能不是最佳解决方案,甚至可能是最坏的解决方案,但我敢肯定它会起作用)是进行大量清理:
从SL项目中删除您的服务参考
在文件系统上删除与您删除的服务参考相关的所有内容(即在SL项目中删除相关文件/文件夹
目录)
还要使用记事本打开您的SL csproj(或vbproj)文件,并删除与服务引用相关的行(搜索
文件中的“服务参考”)
从头开始创建一个新的WcfService应用程序项目,并添加所需的内容(引用,文件...),以便它反映出
当前的WcfService项目
删除旧的WcfService项目
编译新的WcfService项目
将新的WcfService项目作为服务引用添加到SL项目中
好的,这样做会浪费一些时间,但是会起作用。
关于c# - WebService不会通过ServiceReference更新,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8655695/