2009-12-14 58 views
0

我从VS2008创建了一个基本的Silverlight WCF服务。我已经从自动生成的WCF服务唯一改变的就是添加一个方法:在Silverlight中传递版本对象

public int DoWork2(int x, Version version) 
    { 
     return x; 
    } 

如果我删除版本的参数,我的Silverlight客户端完美地工作,但如果添加版本参数,我得到一个错误:

The remote server returned an error: NotFound. 

我不知道为什么。任何指针?

编辑:我应该注意我每次更改方法签名后都更新了我的服务参考。

回答

2

那么,如果你改变了方法的参数或名称,那么就意味着该方法的签名已经改变,地方在那里ULL发现,定义方法签名的接口,看起来像这样

[OperationContract]  
int DoWork2(int x) 

转到该方法签名,并改变它看起来像这样

[OperationContract]  
int DoWork2(int x, Version version) 

我怀疑WCF是告诉你它找不到托管与您所提供

012的方法签名给定端点的方法

编辑: 记住更新在Silverlight中的服务引用一旦你取得了WCF这种变化,因此Silverlight可以了解新的业务合同

还要确保Silverlight是能够序列化的版本对象,使用WCF诊断跟踪日志记录,找出问题发生在哪一方(客户端或服务器)发生问题