使用 Visual C# .NET 编写 Web 服务

本文可帮助你编写一个名为 MathService 的 Web 服务,该服务公开用于加、减、除法和乘法两个数字的方法。

原始产品版本: Visual C# .NET
原始 KB 编号: 308359

要求

以下列表介绍了所需的建议硬件、软件、技能和知识:

  • Microsoft Windows
  • Internet 信息服务器
  • Visual Studio .NET

本文假设你熟悉主题:如何使用 Visual Studio .NET 集成开发环境。

编写 .asmx Web 服务

  1. 打开 Visual Studio .NET。

  2. 在“ 文件 ”菜单上,选择“ 新建 ”,然后选择“ 项目”。 在“ 项目类型”下,选择“ Visual C# 项目”。 然后在“模板”下选择“ASP.NET Web 服务”。 在“位置”文本框中键入 MathService,将默认名称 (WebService1) 更改为 MathService。

  3. 将从 Service1.asmx 创建的默认 Web 服务的名称更改为 MathService.asmx

  4. 选择 “单击” 切换到设计器环境中的代码视图。

  5. 定义封装服务功能的方法。 将从服务公开的每个方法都必须在服务前面标记一个 WebMethod 属性。 如果没有此属性,则不会从服务公开 方法。

    注意

    并非每个方法都需要具有 属性 WebMethod 。 隐藏公共 Web 服务方法调用的一些实现详细信息或在本地应用程序中也使用该类的情况 WebService 非常有用。 本地应用程序可以使用任何公共类,但只有 WebMethod 方法可以作为 Web 服务远程访问。

    将以下方法添加到 MathServices 创建的类:

    [WebMethod]
    public int Add(int a, int b)
    {
      return(a + b);
    }
    [WebMethod]
    public System.Single Subtract(System.Single A, System.Single B)
    {
      return (A - B);
    }
    [WebMethod]
    public System.Single Multiply(System.Single A, System.Single B)
    {
      return A * B;
    }
    [WebMethod]
    public System.Single Divide(System.Single A, System.Single B)
    {
      if(B == 0) return -1;
      return Convert.ToSingle(A / B);
    }
    
  6. 在“ 生成 ”菜单上选择“ 生成 ”以生成 Web 服务。

  7. 浏览到 MathService.asmx Web 服务页以测试 Web 服务。 如果将本地计算机设置为托管页面,则 URL 为 http://localhost/MathService/MathService.asmx

ASP.NET 运行时返回描述 Web 服务的 Web 服务帮助页。 此页还可用于测试不同的 Web 服务方法。

使用 Web 服务

  1. 打开 Visual Studio .NET。

  2. 在“ 项目类型”下,选择“ Visual C# 项目”,然后在“模板”下选择“ 控制台应用程序”。

  3. 将 MathService Web 服务的引用添加到新的控制台应用程序。

    此步骤在客户端计算机上创建代理类。 代理类存在后,可以基于 类创建对象。 使用 对象进行的每个方法调用随后都会转到 Web 服务的统一资源标识符 (URI) , (通常作为 SOAP 请求) 。

    1. 在“ 项目 ”菜单上,选择“ 添加 Web 引用”。
    2. 在“ 添加 Web 引用 ”对话框中的“ 地址 ”文本框中键入 Web 服务的 URL,然后按 Enter。 如果将本地计算机设置为托管 Web 服务,则 URL 为 http://localhost/MathService/MathService.asmx
    3. 选择“添加引用”。 或者,可以键入发现文件的 URL (MathService.vsdisco) 或在左窗格中选择“本地 Web 服务器上的 Web 引用 ”,从列表中选择 MathService 服务。
    4. 展开解决方案资源管理器的“Web 引用”部分,并记下使用的命名空间。
  4. 创建已创建的代理对象的实例。 将以下代码放在名为 的 Main函数中:

    localhost.Service1 myMathService = new localhost.Service1();
    
  5. 在上一步中创建的代理对象上调用方法,如下所示:

    Console.Write("2 + 4 = {0}", myMathService.Add(2,4));
    
  6. 在“ 生成 ”菜单上选择“ 生成 ”以生成控制台应用程序。

  7. “调试”菜单上选择“启动”以测试应用程序。

  8. 关闭并保存项目。

References

有关详细信息,请参阅 Visual Studio .NET 帮助中的使用 Web 服务对 Web 进行编程主题,或.NET Framework开发人员指南中的 ASP.NET Web 服务和 ASP.NET Web 服务客户端主题。

有关更多信息,请参阅下面的网站: