Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Silverlight中传递版本对象_C#_Wcf_Silverlight - Fatal编程技术网

C# 在Silverlight中传递版本对象

C# 在Silverlight中传递版本对象,c#,wcf,silverlight,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. 我不知道为

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

 public int DoWork2(int x, Version version)
    {
        return x;
    }
如果删除了Version参数,我的Silverlight客户端工作正常,但如果添加了Version参数,则会出现错误:

The remote server returned an error: NotFound.
我不知道为什么。有什么建议吗


编辑:我应该注意,每次更改方法签名时,我都会更新我的服务引用。

如果您更改了方法参数或名称,那么这意味着方法签名已经更改,在其中的某个地方,我会找到一个定义该方法签名的接口,如下所示

[OperationContract]    
int DoWork2(int x)
[OperationContract]    
int DoWork2(int x, Version version)
转到该方法签名并将其更改为如下所示

[OperationContract]    
int DoWork2(int x)
[OperationContract]    
int DoWork2(int x, Version version)
我怀疑WCF是在告诉您,它找不到承载在给定端点上的具有您提供的方法签名的方法

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

另外,请确保silverlight能够序列化版本对象,使用WCF诊断跟踪日志记录,并准确找出问题所在以及问题发生在哪一侧(客户端或服务器)