2009-12-14 57 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診斷跟蹤日誌記錄,找出問題發生在哪一方(客戶端或服務器)發生問題