BizTalk BizTalk 메시지 할당에서 WCF 메시지 헤딩을 설정합니다
-
14-11-2019 - |
문제
BizTalk 오케스트레이션이 WCF로 보내는 메시지의 messageHeader를 설정하려고합니다.메시지 계약은 WCF 프로젝트에서 다음과 같습니다.
[MessageContract(IsWrapped = true, WrapperName = "PerformTransformationRequestWrapper", WrapperNamespace="http://www.iasreo.com/integration/servicetypes")]
public class PerformTransformationRequest
{
[MessageHeader(Namespace = "http://www.iasreo.com/integration/servicetypes")]
public string Version { get; set; }
/// <summary>
///
/// </summary>
[MessageHeader(Namespace = "http://www.iasreo.com/integration/servicetypes", MustUnderstand = true)]
public TransformType TransformType { get; set; }
/// <summary>
///
/// </summary>
[MessageBodyMember(Namespace = "http://www.iasreo.com/integration/servicetypes")]
public System.IO.Stream Payload { get; set; }
}
.
transformtype.cs
[DataContract(Namespace = "http://www.iasreo.com/integration/servicetypes")]
public enum TransformType
{
/// <summary>
/// Transform to Excel
/// </summary>
[EnumMember]
ExcelTransform = 1,
/// <summary>
/// Transform to PDF
/// </summary>
[EnumMember]
PDFTransform = 2
}
.
메시지 할당 모양으로 BizTalk에 보내기 위해 메시지를 만들고 해당 코드는 다음과 같이 보입니다.
xmlDoc = new System.Xml.XmlDocument();
xmlDoc.LoadXml(@"<ns0:PerformTransformationRequestWrapper xmlns:ns0=""http://www.iasreo.com/integration/servicetypes""><ns0:Payload>GpM7</ns0:Payload></ns0:PerformTransformationRequestWrapper>");
PerformTransformationRequest = xmlDoc;
xpath(PerformTransformationRequest, "/*[local-name()='PerformTransformationRequestWrapper' and namespace-uri()='http://www.iasreo.com/integration/servicetypes']/*[local-name()='Payload']") = System.Convert.ToBase64String(System.Text.Encoding.ASCII.GetBytes(Input.OuterXml));
.
WCF MessageContract에서 버전 및 TransformType을 설정하려면 어떻게해야합니까?
해결책
You can set the promoted WCF.OutboundCustomHeaders property of the outgoing message
OutboundMessage(WCF.OuboundCustomHeaders) = "...";
You need to supply the complete WCF Header string as the parameter.
This http://bencode.net/biztalk-custom-wcf-behaviour might be of use to you.
제휴하지 않습니다 StackOverflow