贝博恩创新科技网

ASP.NET如何快速开发WebService?

ASP.NET WebService 教程

目录

  1. 第一部分:什么是 WebService?

    ASP.NET如何快速开发WebService?-图1
    (图片来源网络,侵删)
    • 概念解释
    • 为什么使用 WebService?
    • 核心技术:SOAP 和 XML
  2. 第二部分:创建你的第一个 ASP.NET WebService

    • 环境准备
    • 创建项目
    • 编写 WebService 方法
    • 测试 WebService
  3. 第三部分:如何调用 WebService

    • 使用 Visual Studio 添加 Web 引用
    • 使用 C# 代码手动调用 (HTTP POST/GET)
    • 使用 jQuery (AJAX) 调用 (适合 Web 前端)
  4. 第四部分:高级主题

    • 数据类型与序列化
    • 状态管理
    • 错误处理
  5. 第五部分:现代替代方案

    ASP.NET如何快速开发WebService?-图2
    (图片来源网络,侵删)
    • 从 ASMX 到 WCF
    • 现代首选:ASP.NET Web API
  6. 第六部分:部署 WebService

    部署到 IIS


第一部分:什么是 WebService?

概念解释

WebService 是一种基于 Web 的、可以跨网络进行应用程序间通信的技术,它就是一个可以通过 HTTP 协议访问的远程应用程序,提供了特定的功能(比如查询天气、计算汇率等),其他程序(客户端)可以像调用本地方法一样调用它的功能。

它的核心思想是 “服务”,即一个提供某种功能的黑盒子,客户端不需要知道它的内部实现,只需要知道如何“请求”和“接收响应”。

ASP.NET如何快速开发WebService?-图3
(图片来源网络,侵删)

为什么使用 WebService?

  • 跨平台、跨语言:WebService 使用标准的 Web 协议(HTTP)和数据格式(XML),所以任何能发送 HTTP 请求和解析 XML 的平台(如 Java, Python, PHP, .NET, Android, iOS)都可以调用它。
  • 重用性:可以将核心业务逻辑封装成 WebService,供多个不同的客户端(Web 网站、桌面应用、手机 App)共享使用,避免重复开发。
  • 松耦合:客户端和服务器端是分离的,它们之间通过契约(WSDL)进行交互,而不是紧耦合的代码,你可以独立地修改服务器端的实现,只要契约不变,客户端就不需要改动。

核心技术:SOAP 和 XML

  • XML (eXtensible Markup Language):WebService 的数据交换格式,客户端发送的请求和服务器返回的响应都被打包成 XML 格式的文本,XML 具有良好的可读性和可扩展性。
  • SOAP (Simple Object Access Protocol):一种基于 XML 的协议,它定义了消息的格式、编码方式以及如何通过 HTTP(或其他协议)进行传输,你可以把 SOAP 看作是“信封”,里面装着你的“信件”(XML 数据)。

一个典型的 SOAP 请求看起来像这样:

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Add xmlns="http://tempuri.org/">
      <a>5</a>
      <b>10</b>
    </Add>
  </soap:Body>
</soap:Envelope>

第二部分:创建你的第一个 ASP.NET WebService

我们将使用 Visual Studio 来创建一个经典的 ASMX WebService。

环境准备

  1. 安装 Visual Studio (推荐 Visual Studio 2025 或 2025,但旧版本如 2025/2025 也可以)。
  2. 在安装 Visual Studio 时,确保勾选了 “.NET 桌面开发”“ASP.NET 和 Web 开发” 工作负载。

创建项目

  1. 打开 Visual Studio,选择 “创建新项目” (Create a new project)。

  2. 在模板搜索框中输入 ASP.NET Web Service Application,然后选择它。

  3. 给你的项目命名,MyFirstWebService,然后点击 “创建”。

  4. Visual Studio 会为你创建一个默认的 Service1.asmx 文件和相应的代码文件 Service1.cs

编写 WebService 方法

  1. 在 “解决方案资源管理器” 中,找到 Service1.asmx 文件,右键点击,选择 “查看代码” (View Code)。
  2. 你会看到一个继承自 System.Web.Services.WebService 的类,这个类就是你的 WebService。
  3. 在类中定义一个公共方法,要使其成为一个可以通过 Web 访问的 WebService 方法,需要为该方法添加 [WebMethod] 特性。

让我们修改 Service1.cs 文件,添加一个简单的加法方法:

using System;
using System.Web.Services;
// [WebService(Namespace = "http://tempuri.org/")] // 默认命名空间
// [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// [System.ComponentModel.ToolboxItem(false)]
// // 若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。
// // [System.Web.Script.Services.ScriptService]
public class Service1 : System.Web.Services.WebService
{
    public Service1 ()
    {
        // 如果使用设计的组件,请取消注释以下行
        // InitializeComponent(); 
    }
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
    // 添加我们自己的 WebMethod
    [WebMethod(Description = "将两个整数相加")]
    public int Add(int a, int b)
    {
        return a + b;
    }
    [WebMethod]
    public string GetServerTime()
    {
        return $"当前服务器时间是: {DateTime.Now}";
    }
}

代码解释:

  • [WebMethod]:这是最重要的特性,它告诉 ASP.NET 框架,这个方法是一个可以通过 HTTP 请求公开访问的 WebService 方法。
  • Description:可选属性,用于在测试页面中为方法添加描述信息。
  • public:WebMethod 必须是 public 的。

测试 WebService

这是 ASP.NET WebService 最方便的一点!Visual Studio 内置了测试工具。

  1. 在 “解决方案资源管理器” 中,双击 Service1.asmx 文件,使其在设计视图中打开。

  2. 右键点击设计视图,选择 “在浏览器中查看” (View in Browser)。

  3. 浏览器会打开一个页面,列出了你定义的所有 [WebMethod] 方法(HelloWorld, Add, GetServerTime)。

  4. 点击其中一个方法,Add,你会看到一个测试页面,有两个输入框 ab,以及一个 “调用” 按钮。

  5. 输入 510,然后点击 “调用” 按钮。

页面下方会显示一个 XML 响应,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<int xmlns="http://tempuri.org/">15</int>

这表明你的 WebService 成功接收了参数,执行了加法运算,并以 XML 格式返回了结果 15,恭喜,你已经成功创建了并测试了你的第一个 WebService!


第三部分:如何调用 WebService

现在我们创建一个客户端来调用刚刚创建的 WebService。

使用 Visual Studio 添加 Web 引用 (传统方式)

这种方式在 .NET Framework 项目中非常常见。

  1. 在你的客户端解决方案中,右键点击项目,选择 “添加” -> “服务引用...” (Add -> Service Reference...)。
  2. 在弹出的窗口中,点击 “高级...” (Advanced...)。
  3. 在 “高级 Web 服务引用设置” 窗口中,点击 “添加 Web 引用...” (Add Web Reference...)。
  4. 在 URL 输入框中,输入你的 WebService 的地址,如果你的 WebService 正在本地运行,地址可能是:http://localhost:12345/Service1.asmx,然后点击 “前往” (Go)。
  5. 成功后,你会看到 WebService 的方法列表,为你的 Web 引用起一个简单的名字,MyWebServiceRef,然后点击 “添加引用” (Add Reference)。
  6. 你可以在客户端代码中使用这个 WebService 了。

C# 调用示例:

using System;
using System.Windows.Forms;
namespace WinFormsWebServiceClient
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void btnCallWebService_Click(object sender, EventArgs e)
        {
            // 1. 创建 WebService 的代理对象
            MyWebServiceRef.Service1 myService =
分享:
扫描分享到社交APP
上一篇
下一篇