我正在创建一个新的WCF服务。我最初只有三次手术。但过了一段时间后,我决定又增加两个。当我尝试从WPF客户端添加服务引用时,此操作不会出现在Microsoft测试客户端中,也不会出现在操作列表中。我还尝试评论其中一个初始操作。它仍然出现在Microsoft测试客户端中,可以调用。我试过删除服务生成的dll并重新生成。没运气。有一种“缓存”,Visual Studio存储我可以删除的WCF服务库吗?
更新:我正在使用ASP.NET开发服务器中运行的服务。
答案 0 :(得分:4)
您需要了解事情发生的顺序。
[OperationContract]
方法,或删除它们,或更改其参数或返回值。这最后会产生向服务发送新元数据或WSDL的请求的效果。只有然后,客户端才能看到您对服务定义所做的更改。
答案 1 :(得分:1)
我不知道为什么,但我创建了一个新项目并从有问题的项目中复制了操作的定义,问题就消失了。微软之谜的一个案例。
答案 2 :(得分:0)
确保在添加新操作后更新服务。
还要确保它们具有属性[OperationContract]
。
答案 3 :(得分:0)
我们发现的一件事是,当您部署dll时,它们必须位于bin中,并且不能驻留在debug或release文件夹中。
答案 4 :(得分:0)
对我来说工作:只需重建wcf项目
答案 5 :(得分:0)
您是否关闭了客户端的客户端连接 显示您的服务
class Test
{
static void Main()
{
LocationClient client = new LocationClient();
// Use the 'client' variable to call operations on the service.
// Always close the client.
client.Close();
}
}
答案 6 :(得分:0)
解决方案:
确保您的dataContract不包含任何枚举 (您可以使用整数)
请务必引用解决方案中的项目而不是磁盘上的dll
=>你懂了