5

我正在尝试在 VS2010 中创建一个 Web 服务并将其作为 3.5 Framework Web Service 项目进行。

我有默认的 Hello World 方法和一些我已经添加的方法。我添加的那些调用了一个数据提供者类,该类又连接到数据集。但是,当我在本地运行时,我只看到 Hello World 方法而不是我的新方法。然后我删除 hello world 方法并重新运行,我仍然可以看到它。

我需要做什么才能在本地运行它,它与在我的登台和生产服务器上运行的过程相同吗?

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

4

2 回答 2

5

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

在此处输入图像描述

如果这就是你的意思....

很可能您要么错过了[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()]声明应用于您的函数,因为它可能是声明之后的第一个函数。

于 2012-12-28T17:32:36.527 回答
0

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

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

删除静电,它会工作!

于 2014-01-15T10:23:26.203 回答