第二十九章 使用 MTOM 进行附件 - Web 服务和 Web 客户端的默认行为

发布于:2024-06-21 ⋅ 阅读:(161) ⋅ 点赞:(0)

第二十九章 使用 MTOM 进行附件 - Web 服务和 Web 客户端的默认行为

Web 服务和 Web 客户端的默认行为

默认情况下, Web 服务的行为如下:

  • 如果 Web 服务以 MTOM 包的形式收到请求,则它会将响应作为 MTOM 包发送。

此外,Web 服务实例的 IsMTOM 属性设置为 1

  • 如果收到不在 MTOM 包中的请求,Web 服务将发送不在 MTOM 包中的响应。

默认情况下, Web 客户端的行为如下:

  • 它不会将请求作为 MTOM 包发送。
  • 无论响应是否在 MTOM 包中,它都会处理响应。

如果响应在 MTOM 包中,则 Web 客户端实例的 IsMTOM 属性将设置为 1。如果响应不在 MTOM 包中,则不会更改 IsMTOM 属性。

强制响应为 MTOM

可以强制 Web 服务将每个响应作为 MTOM 包发送。为此,请执行以下任一操作:

  • Web 服务类中,将 MTOMREQUIRED 参数设置为 1
  • Web 服务实例中,将 MTOMRequired 属性设置为 1。可以在 Web 方法或 OnPreWebMethod() 回调中执行此操作。有关此回调的介绍,请参阅自定义 Web 服务的回调。
  • Web 服务附加一个策略声明以发送 MTOM 包。为此,需要创建并编译一个引用 Web 服务类的配置类;在此策略中,启用 MTOM 的使用。请参阅保护 Web 服务。

如果附加这样的策略声明,则会忽略 MTOMREQUIRED 的值,并且 MTOMRequired 将被设置为 1

WSDL 的影响

MTOMREQUIREDMTOMRequired 不会影响 Web 服务的 WSDL

引用 MTOM 的策略声明确实会影响 WSDL;如果添加策略声明,则需要重新生成任何 Web 客户端。对于 Web 客户端,只需将 MTOM 策略声明附加到客户端,而不必重新生成客户端类。

强制请求作为 MTOM

可以强制 Web 客户端将每个请求作为 MTOM 包发送。为此,请执行以下操作之一:

  • Web 客户端类中,将 MTOMREQUIRED 参数设置为 1
  • Web 客户端实例中,将 MTOMRequired 属性设置为 1
  • 将策略声明附加到 Web 客户端以发送 MTOM 包。为此,需要创建并编译引用 Web 服务客户端的配置类;在此策略中,启用 MTOM 的使用。请参阅保护 Web 服务。

如果附加这样的策略声明,则会忽略 MTOMREQUIRED 的值,并且 MTOMRequired 将被设置为 1

WSDL 的影响

MTOMREQUIREDMTOMRequired 不假设此 Web 客户端使用的 Web 服务的 WSDL 发生任何变化。

引用 MTOM 的策略声明确实会影响 WSDL。也就是说,只有当 Web 服务需要时,才会向客户端添加 MTOM 策略声明。


网站公告

今日签到

点亮在社区的每一天
去签到