WebServices in .NET






3.50/5 (3投票s)
WebServices in .NET
定义
它是微软在 .NET 中引入的一项技术,用于通过网络提供分布式服务。Web 服务始终以 XML 标准执行逻辑的分发。
历史
在 .NET 之前,市场上已有许多技术可用于开发分布式服务,例如 DCOM、CORBA、RMI 等。
优点
- 易于开发和使用
- 跨应用程序通信
- 跨平台通信
- 跨语言通信
- 出于安全原因支持防火墙
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)
架构
本地架构
- 当客户端应用程序发出请求时,它会搜索 Web 服务以及该 Web 服务的 WSDL 文件,并将该 Web 服务的 WSDL 文件返回给客户端程序。
- 客户端程序将 WSDL 文件传递给代理类,代理类会根据描述检查您的请求,并通过绑定、参数列表、类型和返回类型生成请求对象。
- 请求对象被转换为 XML 标准,称为 SOAP 请求 Envelope。
- SOAP 请求 Envelope 使用 http 协议传输到服务器。
- Web 服务器上的 SOAP 服务器将接受 SOAP 请求 Envelope,将其转换为普通请求对象,然后转发到 Web 服务。
- Web 服务将处理请求并向 SOAP 服务器提供响应。
- SOAP 服务器将响应转换为 SOAP 响应 Envelope,并使用 http 协议将其发送回客户端。
- 客户端机器上的代理类会将 SOAP 响应对象转换为以显示输出。
全局架构
- 当客户端想要搜索或访问 Web 服务时,请求首先由 UDDI 服务器接受。
- UDDI 包含该 Web 服务的发现文件。
- UDDI 服务器根据请求选择发现文件,并将 WSDL 文件的链接返回给客户端。
- 客户端程序将请求发送给 WSDL 文件。然后 Web 服务将 WSDL 文件返回给客户端。
- 其余步骤与本地架构相同。
在 ASP.NET 中开发 Web 服务
- Web 服务是无状态的。
- 它们应以 .asmx (Active Server Method extension) 扩展名保存。
- 您希望提供 Internet 可访问性的方法应使用
[WebMethod]
属性声明。 - 要在 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 个概念支持服务器端状态管理。
- 会话
- 应用
- 缓存
Web 服务的会话
- 会话是在服务器机器上维护的一些信息,默认生命周期为发送响应后的 20 分钟。
- 每个用户都是本地的。
- Web 服务的会话默认是禁用的,因此要使用会话,我们需要为每个 Web 方法启用它。
Web 服务的应用程序对象
- 它与会话类似,在发送响应后的 5 分钟生命周期内维护服务器上的信息。
- 它可以被一个以上的用户共享。
Web 服务的缓存
- 缓存用于将一些数据、网页输出保留在快速访问的临时内存中,即缓存内存。
Web 服务的安全性
- 如果 Web 服务放置在 UDDI 服务器下,任何人都可以访问您的 Web 服务。
- 因此,UDDI 服务器在访问其中的 Web 服务之前需要注册。为了提供 UDDI 服务器和应用程序之间的通信,我们需要身份验证服务。
- 在 .NET 1.1 版本中,需要通过从 http://www.hotmail.com 或 http://www.ms.com 下载来安装身份验证服务,然后我们需要在应用程序的 web.config 文件中指定身份验证、授权设置。
- 在 Web.Config 文件中
<authentication mode = “Passport”> <Passport redirecturl = “ ”/> </authentication>
- 从 .NET 2.0 版本开始,身份验证服务默认集成,并且它们也配置在 IIS 上。