2012-02-22 47 views
1

我有這樣沒有過載的方法XYZ()與輸出參數取4個參數

public void AbcXyz(string unm, string pass, out string status, out string Utype) 
{ 

} 

web服務和我已經加入此web服務的參考到我的溶液中,創建了一個對象到這個web服務並呼籲這樣

srv.AbcXyz(Uname, encryptPswd,out result, out Utype); 

這裏的網絡方法,我得到一個錯誤

"No Overload for method 'AbcXyz' takes '4' arguments" 

我真正的ly dnt明白爲什麼我得到這個錯誤。可有人請幫助我在這個問題..

問候, vijayUV

+0

將服務添加到解決方案後,是否更改了Web服務方法?如果是這樣,您將需要更新解決方案中的服務。 – 2012-02-22 09:37:07

回答

1

你有沒有更新你的網站引用?

您確定您使用的是最新版本嗎?

當您開始輸入「srv.AbcXyz」時,智能感知會顯示什麼?


編輯:

必須有你沒有的東西更新。

  1. 編譯你的WS項目。

  2. 在您的WS測試調用罪魁禍首方法

  3. 在消費項目中更新WebReferences。

  4. 在參考文件中瀏覽該方法。檢查它是否有你期望的簽名。

應該工作!我會等待你的反饋

+0

我已經刪除了Web引用,並在重建Web服務後再次添加了Web引用,但仍面臨同樣的問題,我相信我正在使用更新後的版本 – vijayUV 2012-02-22 10:25:38

+0

@vijayUV:智能感知如何?它是否顯示具有預期參數的方法? – 2012-02-22 11:15:28

+0

它顯示只有3個參數像srv.AbcXyz(字符串unm,字符串傳遞,出字符串Utype) – vijayUV 2012-02-23 04:46:12

0

你最近改變了這種方法嗎?我在這裏的專長領域稍微有些偏離,但是我知道使用WCF必須運行一些能夠生成消耗代碼用來了解服務外觀的文件。如果創建Web服務具有類似的過程,那麼您可能需要再次經歷該過程。

換句話說,也許調用服務的代碼正在尋找一箇舊文件,它並沒有告訴它有4個參數的方法。

+0

你是對的。在Web服務中,只要WebMethods的簽名發生更改,就需要更新使用者的引用。 – 2012-02-22 09:46:29