C# VS2010 Framework 3.5中Web服务中的方法在本地运行时未显示

C# VS2010 Framework 3.5中Web服务中的方法在本地运行时未显示,c#,asp.net,visual-studio-2010,web-services,C#,Asp.net,Visual Studio 2010,Web Services,我正在尝试在VS2010中创建一个web服务,并将其作为一个3.5框架web服务项目来完成 我有默认的helloworld方法,还有一些我已经添加的方法。我添加的类调用了一个数据提供程序类,该类又连接到数据集。然而,当我在本地运行时,我只看到helloworld方法,而没有看到我的新方法。然后我删除helloworld方法并重新运行,我仍然可以看到它 我需要做什么才能在本地运行它?它与在我的暂存和生产服务器上运行它的过程是否相同 我习惯于在1.1中创建服务,这是我在3.5中创建的第一个服务。我假

我正在尝试在VS2010中创建一个web服务,并将其作为一个3.5框架web服务项目来完成

我有默认的helloworld方法,还有一些我已经添加的方法。我添加的类调用了一个数据提供程序类,该类又连接到数据集。然而,当我在本地运行时,我只看到helloworld方法,而没有看到我的新方法。然后我删除helloworld方法并重新运行,我仍然可以看到它

我需要做什么才能在本地运行它?它与在我的暂存和生产服务器上运行它的过程是否相同

我习惯于在1.1中创建服务,这是我在3.5中创建的第一个服务。

我假设“它没有显示”是指当您运行web服务网站并导航到.asmx页面时,该方法没有显示在可用服务调用列表中,如此屏幕截图所示:

如果你是这个意思……

很可能是函数定义之前缺少了
[WebMethod()]
声明,或者该方法未声明为public

例如:

[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;
}



此外,我猜想,当您删除HelloWorld方法时,您看到方法的原因是您只删除了方法,而保留了
[WebMethod()]
声明。然后,这将更改代码,以便将
[WebMethod()]
声明应用于您的函数,因为它可能是声明之后的第一个函数。

检查您的函数是否声明为静态的? 因此,即使[WebMethod()]在以下情况下也不起作用:

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

去除静电,它就会工作

您是否尝试过更新服务引用?您是如何创建服务的?这是WCF服务还是ASMX?如果“不出现”是指其他内容,请告诉我,我将删除或更改此答案。
[WebMethod()]
public static string GetName(int EmployeeNumber)
{
 // some code to get name from employee #
return ReturnValue;
}