文章目录
- 第二十九章 使用 MTOM 进行附件 - Web 服务和 Web 客户端的默认行为
- `Web` 服务和 `Web` 客户端的默认行为
- 强制响应为 `MTOM` 包
- 对 `WSDL `的影响
- 强制请求作为 `MTOM` 包
- 对 `WSDL` 的影响
第二十九章 使用 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 的影响
MTOMREQUIRED 和 MTOMRequired 不会影响 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 的影响
MTOMREQUIRED 和 MTOMRequired 不假设此 Web 客户端使用的 Web 服务的 WSDL 发生任何变化。
引用 MTOM 的策略声明确实会影响 WSDL。也就是说,只有当 Web 服务需要时,才会向客户端添加 MTOM 策略声明。