使用托管代码进行 Web 服务编程简介

更新:2007 年 11 月

Web 服务实现了在异类系统之间以 XML 消息的形式进行数据交换。虽然远程访问数据和应用程序逻辑不是一个新概念,但以松耦合的方式执行该操作却是一个全新的概念。以前的尝试(例如 DCOM、IIOP 和 Java/RMI)要求在客户端和服务器之间进行紧密集成,并使用平台和实现特定的二进制数据格式。虽然这些协议要求特定组件技术或对象调用约定,但 Web 服务却不需要。在客户端和服务器之间所做的唯一假设就是接收方可以理解收到的消息。换句话说,客户端和服务器同意一个协定(在此所述的情况下,使用 WSDL 和 XSD),然后通过在指定的传输协议(例如 HTTP)之上生成遵守该协定的消息来进行通信。因此,用任何语言编写、使用任何组件模型并在任何操作系统上运行的程序,都可以访问 Web 服务。此外,使用文本格式(如 XML)的灵活性使消息交换随时间的推移以一种松耦合的方式进行进化成为可能。在不可能同时更新消息交换中所有方的环境中,这种松耦合是强制的。

通过使用 ASP.NET 页框架创建 Web 服务,可以使这些 Web 服务访问 .NET Framework 的许多功能,例如身份验证、缓存和状态管理。由于 ASP.NET 和 .NET Framework 是托管代码中的 Web 服务的基础,因此开发人员可以着重创建或访问 Web 服务,而无需编写基础结构代码。

在 ASP.NET 应用程序模型中,计划用于浏览器的网页使用 .aspx 扩展名。为了区分 Web 服务和常规 ASP.NET 页,Web 服务使用 .asmx 扩展名。

以下是使用 Web 服务时的两个基本作用:

  • 创建 Web 服务 - 当您创建 XML Web services 时,您是在创建一个向 XML Web services 客户端公开功能的应用程序。

  • 访问 Web 服务 - 当您访问 Web 服务时,客户端应用程序将查找、引用和使用包含在单独的 Web 服务中的功能。XML Web services 的客户端通常是能够发送、接收和处理出入 Web 服务的消息的应用程序。但是,最低要求是客户端必须能够向 Web 服务发送消息。这包括使用 .NET Framework 的所有应用程序。

Web 服务既可以是独立的应用程序,也可以是较大型 Web 应用程序的子组件。例如,假设您正在创建一个销售联机丛书的 Web 应用程序。您的 Web 应用程序可能按如下方式与 Web 服务进行交互:

  • 创建 Web 服务 - 您的应用程序将其订单处理逻辑作为 Web 服务公开,分支机构的网站可以在它们的 Web 应用程序中使用该 Web 服务通过您的在线书店销售图书,而不需要它们的客户来访问您的网站。

  • 访问 Web 服务 - 您的应用程序访问由另一家专门为在线书商编写和提供图书评论的公司提供的 Web 服务。当您的在线书店的访问者查看特定图书的详细内容时,他们还可以在同一页上看到这本书的书评。

请记住,几乎可以从任何其他种类的应用程序(包括其他 Web 服务、Web 应用程序、Windows 应用程序和控制台应用程序)访问 Web 服务。最低要求是客户端必须能够向 Web 服务发送消息。

请参见

其他资源

托管代码中的 Web 服务

使用 Web 服务进行 Web 编程

在托管代码中创建 Web 服务

在托管代码中访问 Web 服务