ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> .NET技术
可靠的 XML Web Service (2)
标头的作用

在查看代码之前,我们需要了解一下 SOAP 主题,即标头。SOAP 1.1 规范中谈论最少的内容之一就是 SOAP 标头。标头提供了一种扩展消息处理体系结构的简单方法。SOAP 1.1 规范中提到:标头在实现与消息主体没有特定关系的处理规则(例如验证和事务管理)时非常有用。对任何类型的消息来说,SOAP 标头都是以独立方式对可靠性信息进行编码的完美解决方案。规范中还概述了实施和处理这些标头的标准和规则。



下面我们来看看如何实现包含可靠性信息的 SOAP 标头。首先要为标头确定架构。这很重要,因为它正是最终用户在支持该标头的 Web 服务的 WSDL 文件中看到的实际效果。对于此实现方案,我直接将处理 API 映射到 SOAP 标头。



我来解释一下。在我的处理 API 中有一个名为 ReliabilityInfo 的类。对此类进行实例化时,它将在运行时变成动态对象。也就是说,您可以从可靠性的角度设置确定如何处理出站消息的属性。此对象还可以在运行时序列化为 SOAP 标头。下面是该类及其成员的一个快照。为了清楚起见,我删除了具体的实现和私有成员。



[XmlRootAttribute(ElementName="ReliableHeader", _

   Namespace="http://ericRP/ReliableHeader/2001/", IsNullable=false)]

   public class ReliabilityInfo : SoapHeader

   {      

      public string Destination{}

      public string ConversationId{}

      public int MessageId{}

      public MessageStatus Status{}

      public DateTime SendDate{}

      public DateTime ExpireDate{}

      public string AckURL{}

public enum MessageStatus{}



[XmlIgnore]

      public int MaxRetry{}

      [XmlIgnore]

      public string Text{}

   }



序列化为出站 SOAP 消息时,标头如下所示:



<soap:Header>

<ReliableHeader xmlns="http://ericRP/ReliableHeader/2001/">

<ConversationId>b9e029e1-af0f-42cb-83b0-7888f9e3ffc4</ConversationId>

<MessageId>1</MessageId>

<Status>新</Status>

<SendDate>2001-11-06T14:59:02.1021226-08:00</SendDate>

<ExpireDate>2001-11-06T18:59:02.1021226-08:00</ExpireDate>

<AckURL>http://localhost:8082/ericRPAck/POAck.asmx</AckURL>

</ReliableHeader>

</soap:Header>



这是通过 .NET 框架中两个非常重要的类实现的。基本 XML 序列化块使用 System.Xml.Serialization 名称空间类来进行处理。这两个类一个是 XmlRootAttribute 属性类,我使用它告诉序列化程序将文档碎片的根称为 ReliableHeader,并将它与名称空间相关联。此后,所有公共成员也同样会被序列化,除非您告诉序列化程序忽略该成员。我使用的另一个重要名称空间是 System.Web.Services.Protocols。具体地说,即 SoapHeader 类。从该类进行继承时,它会自动将序列化的 XML 加入到 SOAP 消息中。本文稍后将论述如何将标头加入消息。



这非常强大,因为我不仅可以使用类型明确的、编译好的对象作为标头的基础,而且在这些类的成员内部还有特定的实现。



综述

好啦,上面只是对可靠性进行了简单的论述,并阐述了我自己的规范。下面让我们看一看它的代码。



扩展 Web 服务客户端代理

第一步是重新设置现有的 .NET Web 服务客户端代理。记住,此协议可以在任何 SOAP 处理引擎中实现。我选择了 .NET 框架,因为它易于使用、基于标准且可扩展。



选取一个现有的 Web 服务客户端代理(例如 PurchaseOrderProxy),然后添加以下代码:



该类中必须有名为 ReliableHeader 的公共成员,并且其类型必须为 ericRP.ReliabilityInfo。此成员将在运行时通过调用客户端进行设置。稍后将使用此成员为出站消息提供标头信息,并提供在跟踪过程中应用了该标头的消息的状态信息。例如:

public class PurchaseOrderProxy :

      System.Web.Services.Protocols.SoapHttpClientProtocol

   {

      public ReliabilityInfo ReliableHeader;

      

      //为了清楚起见,此处省略了其他代码

 &n
 
 
本站关键词:
|厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用||厚街网站建设网页制作|长安网站建设网页制作|石龙网站建设网页制作|东坑网站建设网页制作|东莞专业网络公司|东莞速达软件|东莞财务软件|东莞ERP软件|东莞电脑维护|网页开发|域名注册|空间租用|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有