65.9K
CodeProject 正在变化。 阅读更多。
Home

WebServices in .NET

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (3投票s)

2016年1月11日

CPOL

4分钟阅读

viewsIcon

17153

WebServices in .NET

定义

它是微软在 .NET 中引入的一项技术,用于通过网络提供分布式服务。Web 服务始终以 XML 标准执行逻辑的分发。

历史

在 .NET 之前,市场上已有许多技术可用于开发分布式服务,例如 DCOM、CORBA、RMI 等。

Picture4

优点

  • 易于开发和使用
  • 跨应用程序通信
  • 跨平台通信
  • 跨语言通信
  • 出于安全原因支持防火墙

Web 服务标准

SOAP (Simple Object Access Protocol)

  • 此标准用于数据转换和数据转换。
  • 它包含 XML,这是通用的可理解格式,用于以 XML 格式传输请求和响应,这称为 SOAP Envelope。
  • 为了在客户端和服务之间传递 SOAP Envelope,使用了通用通信协议,即 HTTP。
  • 因为它的端口号已在大多数防火墙和代理上配置。

WSDL (Web Service Description language)

  • 此标准将使用 XML Schema 描述 Web 服务。
  • 它提供了关于可用方法、方法参数列表、类型和方法返回类型的信息。
  • 它还指定了请求和响应如何与协议一起执行,以及 Web 服务的路径。

DISCO (Discovery Standards)

  • 此文件将维护 WSDL 的链接。

UDDI (Universal Discovery Description Integration)

  • 它是一个集中式存储库,所有 Web 服务的链接都以发现文件的形式维护。(www.UDDI.org)

架构

本地架构

Picture2

  1. 当客户端应用程序发出请求时,它会搜索 Web 服务以及该 Web 服务的 WSDL 文件,并将该 Web 服务的 WSDL 文件返回给客户端程序。
  2. 客户端程序将 WSDL 文件传递给代理类,代理类会根据描述检查您的请求,并通过绑定、参数列表、类型和返回类型生成请求对象。
  3. 请求对象被转换为 XML 标准,称为 SOAP 请求 Envelope。
  4. SOAP 请求 Envelope 使用 http 协议传输到服务器。
  5. Web 服务器上的 SOAP 服务器将接受 SOAP 请求 Envelope,将其转换为普通请求对象,然后转发到 Web 服务。
  6. Web 服务将处理请求并向 SOAP 服务器提供响应。
  7. SOAP 服务器将响应转换为 SOAP 响应 Envelope,并使用 http 协议将其发送回客户端。
  8. 客户端机器上的代理类会将 SOAP 响应对象转换为以显示输出。

全局架构

Picture3

  1. 当客户端想要搜索或访问 Web 服务时,请求首先由 UDDI 服务器接受。
  2. UDDI 包含该 Web 服务的发现文件。
  3. UDDI 服务器根据请求选择发现文件,并将 WSDL 文件的链接返回给客户端。
  4. 客户端程序将请求发送给 WSDL 文件。然后 Web 服务将 WSDL 文件返回给客户端。
  5. 其余步骤与本地架构相同。

在 ASP.NET 中开发 Web 服务

  1. Web 服务是无状态的。
  2. 它们应以 .asmx (Active Server Method extension) 扩展名保存。
  3. 您希望提供 Internet 可访问性的方法应使用 [WebMethod] 属性声明。
  4. 要在 ASP.NET 中开发 Web 服务,.NET Framework 提供了 System.Web.Services 命名空间。

在记事本中开发 Web 服务

<%@ WebService Language=“C#” Class=“Sample”%>
using System;
using System.Web.Services;
public class Sample
{
[WebMethod]
public int Sum(int a, int b)
{
return a+b;
}
}
  • 将文件保存为 .asmx 扩展名,并将文件复制到虚拟目录。
  • 要测试 WebService 并查看描述,请转到 ?浏览器并输入类似 URL,例如:https:///aspnet/first.asmx

Web 服务状态管理

  • 由于 Web 服务是无状态技术,其内存将在每次请求时分配,并在每次响应时自动销毁。
  • 因此,为了在 Web 服务托管系统中保留某些信息一段时间,我们可以使用状态管理。
  • Web 服务状态管理始终通过使用 3 个概念支持服务器端状态管理。
    1. 会话
    2. 应用
    3. 缓存

Web 服务的会话

  • 会话是在服务器机器上维护的一些信息,默认生命周期为发送响应后的 20 分钟。
  • 每个用户都是本地的。
  • Web 服务的会话默认是禁用的,因此要使用会话,我们需要为每个 Web 方法启用它。

Web 服务的应用程序对象

  • 它与会话类似,在发送响应后的 5 分钟生命周期内维护服务器上的信息。
  • 它可以被一个以上的用户共享。

Web 服务的缓存

  • 缓存用于将一些数据、网页输出保留在快速访问的临时内存中,即缓存内存。

Web 服务的安全性

  1. 如果 Web 服务放置在 UDDI 服务器下,任何人都可以访问您的 Web 服务。
  2. 因此,UDDI 服务器在访问其中的 Web 服务之前需要注册。为了提供 UDDI 服务器和应用程序之间的通信,我们需要身份验证服务。
  3. 在 .NET 1.1 版本中,需要通过从 http://www.hotmail.comhttp://www.ms.com 下载来安装身份验证服务,然后我们需要在应用程序的 web.config 文件中指定身份验证、授权设置。
  4. Web.Config 文件中
    <authentication mode = “Passport”>
    	<Passport redirecturl = “ ”/>
    	</authentication>
  5. 从 .NET 2.0 版本开始,身份验证服务默认集成,并且它们也配置在 IIS 上。

© . All rights reserved.