CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > 技巧

使用 SOAP 扩展修改 SOAP 消息

作者: ,  出处:IT专家网社区, 责任编辑: 叶江, 
2007-01-22 15:00
  SOAP扩展允许通过更改往返于Web服务或Web服务客户端的SOAP消息来增加Web服务功能……

  实现 SOAP 扩展

  有两种方法可在客户端或服务器应用程序上运行 SOAP 扩展。首先,您可以配置应用程序以运行该扩展。要配置 SOAP 扩展以便可对所有 Web 服务上的所有 Web 方法(尤其是 vroot)运行,请编辑 Web.config 文件中的 <soapExtensionTypes> 元素部分。以下代码显示,type 属性值必须位于一行上并且包含扩展的完全限定名,而且还包含签名的程序集的版本、区域性和公钥标记。

<configuration>
 <system.web>
    <webServices>
      <soapExtensionTypes>
        <add type="Contoso.MySoapExtension, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
priority="1" group="0"/>
        </soapExtensionTypes>
    </webServices>
  </system.web>
</configuration>

  其次,您可以创建应用于 Web 服务方法的自定义属性。要创建自定义属性,请创建从 SoapExtensionAttribute 派生的类。有关创建自定义属性的详细信息,请参见如何:实现 SOAP 扩展。有关创建自定义属性的更多信息,请参见“创建自定义属性”。

  Note注意

  在实现 SOAP 扩展时,如果您的扩展使用 XmlTextReader 读取数据流,则有可能面临拒绝服务 (DOS) 攻击。防止此类攻击的一个方法是确保 ProhibitDtd 属性设置为 true。

  优先级和优先级组

  使用属性或配置,可以向 SOAP 扩展分配优先级,该优先级有助于确定当配置多个 SOAP 扩展以便使用 XML Web 服务方法时执行的相对顺序。SOAP 扩展的优先级越高,它的执行与通过网络发送或接收 SOAP 消息越近。SOAP 扩展属于三个优先级组中的任意一个。在每个组内,priority 属性区别每个成员。priority 属性越低,相对优先级就越高(0 是最高的)。

  SOAP 扩展的三个相对优先级组是:使用属性配置的 SOAP 扩展和配置文件中指定的 group 设置为 0 或 1 的 SOAP 扩展。其优先级的顺序如下:

  •   最高优先级组:在 group 设置为 0 的情况下使用配置文件配置的 SOAP 扩展。
  •   中等优先级组:使用属性配置的 SOAP 扩展。
  •   最低优先级组:在 group 设置为 1 的情况下使用配置文件配置的 SOAP 扩展。

  下面的代码示例是一个配置文件,它指定 Logger.LoggerExtension SOAP 扩展在相对优先级组 0 中运行并具有优先级 1。

<configuration>
 <system.web>
   <webServices>
     <soapExtensionTypes>
      <add type="Logger.LoggerExtension,logger"
           priority="1"
           group="0" />
     </soapExtensionTypes>
    </webServices>
 </system.web>
</configuration>

共4页。 9 1 2 3 4

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i