2012-12-28 30 views
5

我試圖創建VS2010的web服務,做它作爲一個框架3.5 Web服務項目沒有顯示出來。方法在Web服務在VS2010 Framework 3.5中運行時,本地

我在那裏有默認的Hello World方法和我增加了一些。我添加的那些對一個數據提供者類的調用會依次連接到數據集。但是,當我在本地運行時,我只能看到Hello World方法,而不是我的新方法。然後刪除hello world方法並重新運行,我仍然可以看到它。

什麼我需要做的,在本地運行這一點,難道是相同的過程,有它在我的分期和生產服務器上運行?

我曾經創建服務1.1,這是我創造的3.5我的第一個。

+3

您是否嘗試過更新服務引用? –

+0

你是如何創建服務的?它是一個WCF服務,還是ASMX? –

回答

5

我假設通過「它沒有顯示」您的意思是,當您運行Web服務網站並導航到.asmx頁面時,該方法不會顯示在可用服務調用列表中,如這個截圖:

enter image description here

IF這就是你的意思....

最有可能你要麼缺少[WebMethod()]聲明僅僅是函數定義之前,或者該方法未被聲明爲公共。

例子:

[WebMethod()] 
public string GetName(int EmployeeNumber) 
{ 
    // some code to get name from emplyee # 
    return ReturnValue; 
} 

應該顯示出來,當你在本地運行Web服務項目。

這些都不應:

public string GetName(int EmployeeNumber) 
{ 
    // some code to get name from employee # 
    return ReturnValue; 
} 

[WebMethod()] 
private string GetName(int EmployeeNumber) 
{ 
    // some code to get name from employee # 
    return ReturnValue; 
} 

此外,我猜,你看到你的方法,當你刪除了HelloWorld方法的原因,究其原因是您正在刪除方法並離開[WebMethod()]聲明。然後這將更改代碼,以便將[WebMethod()]聲明應用於您的函數,因爲它可能是聲明後的第一個函數。

+0

如果通過「沒有顯示」你的意思是別的,讓我知道,我會刪除或更改此答案。 – David

0

檢查,如果你的函數聲明爲static或不? 因此,即使[的WebMethod()]在以下情況下將無法正常工作:

[WebMethod()] 
public static string GetName(int EmployeeNumber) 
{ 
// some code to get name from employee # 
return ReturnValue; 
} 

消除靜電,它會工作!

相關問題