跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C#

基于 C# .NET Framework 的 Web Service 服务开发实例详解

在 C# .NET Framework 环境下开发 Web Service 的完整流程。内容涵盖 Web Service 基本概念(SOAP、WSDL)、创建项目、编写服务方法(如加法乘法)、本地测试、使用 IIS 或 FTP 部署到服务器,以及客户端通过添加服务引用进行调用的步骤。旨在帮助开发者掌握跨平台、跨语言的分布式服务通信机制及企业级应用集成方案。

筑梦师发布于 2026/4/5更新于 2026/7/2555 浏览
基于 C# .NET Framework 的 Web Service 服务开发实例详解

引言

在 C# .NET Framework 环境下开发 Web Service 是一个常见的企业级开发任务。Web Service 提供了一种跨平台、跨语言的通信机制,使不同系统之间能够互相调用和交互。本文将详细介绍如何在 C# .NET Framework 中创建、部署和调用 Web Service,包括相关的概念、应用场景、详细的开发步骤、完整示例以及部署方法。

1. Web Service 概念介绍

1.1 什么是 Web Service

Web Service 是一种基于 HTTP、SOAP、XML 等标准协议的分布式计算模型。它允许不同平台和编程语言的应用程序通过网络进行通信和数据交换。Web Service 的主要特点包括:

  • 平台无关性:Web Service 可以在任何支持 HTTP 和 XML 的平台上运行。
  • 语言独立性:Web Service 可以使用任何编程语言来实现和调用。
  • 标准化协议:使用标准化的协议,如 HTTP、SOAP 和 WSDL,确保了互操作性。

1.2 SOAP(简单对象访问协议)

SOAP 是一种基于 XML 的协议,用于在网络上传输结构化信息。SOAP 消息通常包含以下部分:

  • Envelope:定义消息的开始和结束。
  • Header:包含可选的消息头信息。
  • Body:包含实际的消息内容。

1.3 WSDL(Web 服务描述语言)

WSDL 是一种 XML 格式的描述语言,用于描述 Web Service 的接口、方法、参数和返回值。WSDL 文件通常包含以下部分:

  • Types:定义数据类型。
  • Message:定义消息结构。
  • PortType:定义操作和消息的接口。
  • Binding:定义操作与消息的绑定。
  • Service:定义服务端点和地址。

1.4 应用场景

Web Service 的应用场景包括但不限于:

  • 跨平台系统集成:例如,将 Java 应用程序与 C# 应用程序进行集成。
  • 分布式系统:例如,微服务架构中的服务调用。
  • 企业服务总线(ESB):使用 Web Service 实现业务功能的松耦合。
  • B2B 电子商务:不同企业之间的数据交换和业务流程集成。

2. 创建 Web Service 项目

选择 Web 服务,点击添加。一个简单的 webservice 就创建完成了。

经过上面两步,我们就生成了一个空的 Web 应用程序项目,然后鼠标右键点击项目,选择 添加>新建项。

创建一个空的 Web 应用程序,选择如下:

打开 Visual Studio,选择 File -> New -> Project 以创建一个新的项目。我们选择 ASP.NET Web 应用程序,如下图所示,项目名称和位置可自己修改,然后点确定进入下一步:

Visual Studio 会生成一个默认的 Web Service 项目结构。项目包含以下重要文件:

  • WebService1.asmx:默认的 Web Service 文件,包含服务的入口点。
  • WebService1.asmx.cs:服务的代码文件,定义服务方法。

3. 编写 Web Service 代码

在本节中,我们将编写一个简单的计算服务,提供加法和乘法功能。

3.1 打开 WebService1.asmx.cs

在解决方案资源管理器中,找到 WebService1.asmx 文件,右键点击并选择 View Code 打开 WebService1.asmx.cs。

3.2 编写服务方法

添加以下代码以定义 Add 和 Multiply 方法:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

namespace MyWebService
{
    /// <summary>
    /// WebService1 的摘要说明
    /// </summary>
    [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 WebService1 : System.Web.Services.WebService
    {
        [WebMethod]
        public string HelloWorld()
        {
            return "Hello World";
        }

        [WebMethod]
        public int Add(int a, int b)
        {
            // 返回两个数的和
            return a + b;
        }

        [WebMethod]
        public int Multiply(int a, int b)
        {
            // 返回两个数的乘积
            return a * b;
        }
    }
}

3.3 代码解析

  • [WebService]:表明该类是一个 Web Service。
  • [WebServiceBinding]:定义 Web Service 绑定的配置。
  • [WebMethod]:标记类中的方法,使其可以作为 Web Service 方法被调用。

4. 测试 Web Service

4.1 运行项目

按 F5 运行项目,Visual Studio 会启动一个开发服务器,并在默认浏览器中打开 http://localhost:XXXXX/webService1.asmx(XXXXX 是端口号)。

4.2 测试方法

在浏览器中,可以看到 Web Service 的描述页面,包含了 Add 和 Multiply 方法。点击方法名,可以进入测试页面:

  1. Add 方法:输入参数 a 和 b,点击 Invoke。浏览器会显示返回结果,例如 <int>30</int>。
  2. Multiply 方法:输入参数 a 和 b,点击 Invoke。浏览器会显示返回结果,例如 <int>200</int>。

5. 部署 Web Service

Web Service 开发完成后,需要将其部署到服务器,使得客户端可以访问。

5.1 使用 IIS 部署

5.1.1 安装和配置 IIS
  1. 打开控制面板,选择 程序和功能,点击 启用或关闭 Windows 功能。
  2. 在 Windows 功能对话框中,勾选 Internet Information Services,并确保 ASP.NET 和 IIS 管理控制台 已勾选,点击 确定。
5.1.2 发布项目
  1. 在解决方案资源管理器中右键点击项目,选择 Publish。
  2. 在发布对话框中选择发布目标,如 File System,指定发布路径(如 C:\inetpub\wwwroot\MyWebService),点击 Publish。
5.1.3 配置 IIS
  1. 打开 IIS 管理器,右键点击 Default Web Site,选择 Add Application。
  2. 在添加应用程序对话框中输入 Alias(如 MyWebService),选择应用程序池,选择物理路径(发布路径)。
  3. 点击 OK,应用程序会被添加到默认网站下。
  4. 在浏览器中输入 http://localhost/MyWebService/Service1.asmx 检查 Web Service 是否正常工作。

5.2 部署到远程服务器

5.2.1 远程服务器准备
  1. 确保目标服务器已安装 IIS 并配置 ASP.NET。
  2. 确保目标服务器防火墙允许 HTTP/HTTPS 访问。
5.2.2 使用 FTP 部署
  1. 在解决方案资源管理器中右键点击项目,选择 Publish。
  2. 在发布对话框中选择 FTP,输入远程服务器的 FTP 地址、用户名和密码,指定目标路径(如 /var/www/MyWebService),点击 Publish。
  3. 发布完成后,浏览器中输入 http://yourserveraddress/MyWebService/webService1.asmx 检查 Web Service 是否正常工作。

6. 客户端调用 Web Service

6.1 添加服务引用

  1. 打开一个新的或现有的 .NET 项目(如控制台应用),右键点击项目选择 Add Service Reference。
  2. 在服务引用对话框中点击 Discover 或输入 Web Service 的 URL(如 http://localhost/MyWebService/webService1.asmx)。
  3. 点击 Go,选择服务并输入命名空间(如 MyWebServiceReference),点击 OK。

6.2 编写调用代码

在项目中编写代码调用 Web Service:

using System;

namespace MyWebServiceClient
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建服务客户端实例
            var client = new MyWebServiceReference.Service1SoapClient();
            // 调用 Add 方法
            int sum = client.Add(10, 20);
            Console.WriteLine($"10 + 20 = {sum}");
            // 调用 Multiply 方法
            int product = client.Multiply(10, 20);
            Console.WriteLine($"10 * 20 = {product}");
            // 关闭客户端
            client.Close();
        }
    }
}

6.3 运行客户端程序

运行客户端程序,可以看到调用 Web Service 的结果输出到控制台。

7. 总结

在本文中,我们详细介绍了如何在 C# .NET Framework 环境下开发、测试、部署和调用 Web Service。我们从概念入手,逐步讲解了 Web Service 的开发步骤和代码示例,最终展示了如何通过客户端调用 Web Service。

通过这种基于标准化协议的分布式服务,开发人员可以实现跨平台、跨语言的互操作,满足企业级应用和系统集成的需求。希望本文能帮助你更好地理解和掌握 Web Service 的开发与应用。

目录

  1. 引言
  2. 1. Web Service 概念介绍
  3. 1.1 什么是 Web Service
  4. 1.2 SOAP(简单对象访问协议)
  5. 1.3 WSDL(Web 服务描述语言)
  6. 1.4 应用场景
  7. 2. 创建 Web Service 项目
  8. 3. 编写 Web Service 代码
  9. 3.1 打开 WebService1.asmx.cs
  10. 3.2 编写服务方法
  11. 3.3 代码解析
  12. 4. 测试 Web Service
  13. 4.1 运行项目
  14. 4.2 测试方法
  15. 5. 部署 Web Service
  16. 5.1 使用 IIS 部署
  17. 5.1.1 安装和配置 IIS
  18. 5.1.2 发布项目
  19. 5.1.3 配置 IIS
  20. 5.2 部署到远程服务器
  21. 5.2.1 远程服务器准备
  22. 5.2.2 使用 FTP 部署
  23. 6. 客户端调用 Web Service
  24. 6.1 添加服务引用
  25. 6.2 编写调用代码
  26. 6.3 运行客户端程序
  27. 7. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • AI 自动化测试:接口测试全流程自动化的实现方法
  • IntelliJ IDEA 中 GitHub Copilot 安装与实战技巧
  • LeetCode 54. 螺旋矩阵
  • llama-cpp-python 完整安装与配置指南
  • PPT 中嵌入 VR 全景图片的实操指南
  • Ubuntu(arm64)设备上安装 chromium 浏览器
  • 前端安全实战:密码加密与常见攻击防护
  • OpenClaw Secure DM Pairing 机制解析与安全私信访问配置
  • 知识图谱与大模型结合:构建智能应用新生态
  • MyBatisPlus 与 Thymeleaf 全栈分页整合方案
  • 大模型时代企业 AI 发展趋势分析
  • OpenClaw 微信通道插件接入与配置指南
  • 解决新机型 Copilot 键替代右 Ctrl 键问题
  • MC.JS WEBMC1.8 入门:10 分钟构建首个方块世界
  • Gemini 3.0 编程能力实测:前端开发效果评估与使用指南
  • FPGA 核心技能学习路径与系统导图总结
  • Sora 刷屏时代,产品经理会被 AI 取代吗?
  • Java 接入 AI 大模型个人实践:多轮对话与流式输出实现
  • GitHub Copilot 与 Claude Code 深度对比:如何选择 AI 编程助手
  • Docker 安装 Neo4j 保姆级教程

相关免费在线工具

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online

  • JSON美化和格式化

    将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online