最近刚进的项目用到了WebService,本人菜鸟一枚,网上找了点资料参考学习一下,为了下次查看,做点笔记。
一.理论
简单的说:Web Service是远程服务器上暴露出来的一些函数接口,通过调用它,即可在客户端展现服务端执行的结果。
Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。
XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、面向万维网络,是Soap的基础。
Soap:(Simple Object Access Protocol)简单对象存取协议。是XML Web Service 的通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口,像HTTP(S)或者SMTP。
WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。
UDDI (Universal Description, Discovery, and Integration) 是一种根据描述文档来引导系统查找相应服务的机制。UDDI利用SOAP消息机制(标准的XML/HTTP)来发布,编辑,浏览以及查找注册信息。它采用XML格式来封装各种不同类型的数据,并且发送到注册中心或者由注册中心来返回需要的数据。
二.特性
为了将一个包含在.asmx文件内的方法开放为一个Web方法,唯一要做的就是在方法的声明之前插入WebMethod特性,一旦文件被编译,这个特性将被存储在”为此而产生之程序集“的元数据中。
注:只有Public方法才可怀疑标注WebMethod特性
1、[WebMethod(BufferResponse=false)]
WebMethod 的 BufferResponse 属性 启用对 XML Web services 方法响应的缓冲。当设置为 true(默认设置)时,ASP.NET 在将响应向下发送到客户端之前对整个响应进行缓冲。
2、[WebMethod(CacheDuration=60)]
WebMethod 的 CacheDuration 属性 启用对 XML Web services 方法结果的缓存。ASP.NET 将缓存每个唯一参数集的结果。
3、[WebMethod(Description="我的方法")]
WebMethod 的 Description 属性 提供 XML Web services 方法的说明,该说明将显示在服务帮助页上。除非另外指定,默认值为空字符串。
4、[WebMethod(EnableSession=true)]
WebMethod 的 EnableSession 属性 启用 XML Web services 方法的会话状态。一旦启用,XML Web services 就可以从 HttpContext.Current.Session 中直接访问会话状态集合,或者,如果它是从 WebService 基类继承的,则可以使用 WebService.Session 属性来访问会话状态集合。除非另外指定,默认值为 false。
5、[WebMethod(MessageName="AddDoubles")]
WebMethod 的 MessageName 属性) 使 XML Web services 能够唯一确定使用别名的重载方法。除非另外指定,默认值是方法名称。当指定 MessageName 时,结果 SOAP 消息将反映该名称,而不是实际的方法名称。
6、[WebMethod(TransactionOption=TransactionOption.RequiresNew)]
WebMethod 的 TransactionOption 属性 使 XML Web services 方法可以作为事务的根对象参与。虽然可以将 TransactionOption 属性 设置为 TransactionOption 枚举的任意值,但 XML Web services 方法仅有两个可能的行为:它不参与事务或它创建一个新事务。使用此特性需要引用: using System.EnterpriseServices;