可以通过使用 AS2To 上下文属性或 Http.UserHttpHeaders
上下文属性中的 AS2To 属性来执行出站 AS2 消息的协议解析。 但是,BizTalk Server 在收到 AS2 消息时不会将 AS2To 属性写入上下文。 如果要对 AS2To 或 UserHttpHeaders 上下文属性执行协议解析,则必须编写自定义业务流程或自定义管道组件才能执行此作。 仅当发送端口未链接到协议时,才需要这样做。
在自定义编排中,可以使用以下代码将 AS2-To 追加到现有 Http.UserHttpHeaders
上下文属性的开头:
Message_1(Http.UserHttpHeaders) = “AS2-To: MyPartner\r\n” + Message_1(Http.UserHttpHeaders);
在自定义管道组件中,可以使用以下代码将 AS2-To 追加到现有 Http.UserHttpHeaders
上下文属性的开头。 在 As2Encoder 组件处理消息之前,需要将 AS2-To 追加到 Http.UserHttpHeaders
上下文属性。
string strName="UserHttpHeaders";
string strValue = "AS2-To: MyPartner\r\n" + (string)baseMessage.Context.Read(strName, "http://schemas.microsoft.com/BizTalk/2003/http-properties");
baseMessage.Context.Write(strName, "http://schemas.microsoft.com/BizTalk/2003/http-properties", strValue);
有关将 EDIIntAS.AS2To
属性或 BTS.UseHttpHeaders
属性提升到上下文的详细信息,请参阅通过 FILE 发送端口发送 AS2 消息中的“提升 AS2 标头上下文属性”。
对于可以添加到自定义管道组件中的代码,以便将 HTTP.UserHttpHeaders 上下文属性中的标头写入消息,请参阅 通过 FILE 发送端口发送 AS2 消息。