<soapProcessingExtension>
定义用于封送不同绑定类型和消息版本之间消息的客户端终结点行为。
架构层次结构
<system.serviceModel>
<behaviors>
<endpointBehaviors>
<endpointBehaviors> 的 <behavior>
<soapProcessingExtension>
语法
<synchronousReceive />
属性和元素
以下几节描述了特性、子元素和父元素。
属性
元素 | 说明 |
---|---|
processMessages |
一个布尔值,指定是否应封送 SOAP 消息版本之间的消息。 |
子元素
无。
父元素
元素 | 说明 |
---|---|
指定终结点行为。 |
备注
SOAP 处理是指在各消息版本之间转换消息的过程。
Windows Communication Foundation (WCF) 路由服务可以将消息从一个协议转换为另一个协议。如果传入消息和传出消息的版本不相同,则会创建一条具有正确版本的新消息。将消息从一个 MessageVersion 处理为另一个版本是通过构造一个新的 WCF 消息来实现的,该消息包含传入 WCF 消息的正文部分和相关标头。在构造新的 WCF 消息的过程中,不会使用特定于寻址的标头或在路由器级别理解的标头,这是因为这些标头要么具有不同的版本(如果为寻址标头),要么已作为客户端和路由器之间的通信的一部分处理。
是否将一个标头置于出站消息内由此标头在通过传入通道层时是否已标记为已理解来决定。不会移除不理解的标头(如自定义标头),并且会将此标头复制到出站消息中,以通过路由服务。系统会将消息正文复制到出站消息中,然后将此消息外发到出站通道,此时将创建和添加特定于该通信协议/传输的所有标头和其他信封数据。
当指定了 SOAP 处理行为时,将执行此类处理步骤。此 <soapProcessingExtension><serviceBehavior> 的 <routingExtension><soapProcessingExtension>processMessages 行为,并针对每个客户端终结点将 true 设置为 。如果您具有路由服务无法理解的协议,或者希望重写默认处理行为,则可以针对整个路由服务或仅针对特定终结点禁用 SOAP 处理。 若要针对整个路由服务在所有终结点上禁用 SOAP 处理,请将 <serviceBehavior> 的 <routingExtension> 行为的 soapProcessing 特性设置为 false。若要针对特定终结点禁用 SOAP 处理,请使用此行为,并将其 processMessages 特性设置为 false,然后将此行为附加到不希望运行默认处理代码的终结点。 当 <serviceBehavior> 的 <routingExtension> 行为设置路由服务时,由于已存在一个终结点行为,因此它将跳过重新应用终结点行为。
另请参见
参考
SoapProcessingExtensionElement
SoapProcessingBehavior