在Silverlight中传递Version对象

时间:2009-12-14 18:44:27

标签: c# wcf silverlight

我从VS2008创建了一个基本的Silverlight WCF服务。我从自动生成的WCF服务中唯一改变的是添加方法:

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

如果我删除Version参数,我的Silverlight客户端工作正常,但如果添加了Version参数,我会收到错误:

The remote server returned an error: NotFound.

我不知道为什么。有什么指针吗?

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

1 个答案:

答案 0 :(得分:2)

如果您更改了方法参数或名称,那么这意味着方法签名已经更改,在那里的某处将找到定义该方法签名的接口,如下所示

[OperationContract]    
int DoWork2(int x)

转到该方法签名并将其更改为如此

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

我怀疑WCF告诉您它无法使用您提供的方法签名找到托管在给定端点上的方法

编辑: 在WCF中进行此更改后,请记住更新Silverlight中的服务引用,以便Silverlight可以理解新的操作合同

还要确保silverlight能够序列化Version对象,使用WCF诊断跟踪日志记录,并确切地找出问题所在以及问题发生在哪一方(客户端或服务器)

相关问题