在 Wcf 自定义发送端口上生成 SOAP 操作标头
Posted
技术标签:
【中文标题】在 Wcf 自定义发送端口上生成 SOAP 操作标头【英文标题】:Generating SOAP Action Header on Wcf-Custom Send Port 【发布时间】:2019-08-18 23:27:45 【问题描述】:我正在 Biztalk 中创建一个发送端口,它使用 Wcf-Custom 适配器发送 SOAP 请求。
到目前为止,我一直在使用 System-ServiceModel 命名空间中的 C# 代码在 Visual Studio 中测试 SOAP 请求。见以下代码:
/ CODEGEN: Generating message contract since the operation transferPayments is neither RPC nor document wrapped.
[System.ServiceModel.OperationContractAttribute(Action="urn:CorporateService:transferPayment", ReplyAction="*")]
[System.ServiceModel.XmlSerializerFormatAttribute()]
transferPaymentsResponse transferPayments(transferPayment1 request);
[System.ServiceModel.OperationContractAttribute(Action="urn:CorporateService:transferPayment", ReplyAction="*")]
System.Threading.Tasks.Task<transferPaymentsResponse> transferPaymentsAsync(transferPayment1 request);
我需要将此“transferPayment”操作添加到适配器中的 SOAP 操作标头字段。
使用提供的示例,我想出了这个
<BtsActionMapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Operation Name="TransferPayment" Action="http://bankconnect.dk/schema/2014/CorporateService/TransferPayment" />
</BtsActionMapping>
其中“http://bankconnect.dk/schema/2014”是命名空间,“CorporateService”是服务,“TransferPayment”是操作。我不确定这是否是实现这一点的正确方法。
我的问题是我应该如何格式化 SOAP 操作标头,以便它们对应于使用的 c# 代码。
【问题讨论】:
看看下面的网页是否有帮助:code.msdn.microsoft.com/windowsapps/How-to-add-custom-5cbbf066 【参考方案1】:我建议您使用BizTalk WCF Service Consume Wizard
在 BizTalk 内部生成架构。这将为您提供所有可能的操作。
【讨论】:
以上是关于在 Wcf 自定义发送端口上生成 SOAP 操作标头的主要内容,如果未能解决你的问题,请参考以下文章
WCF自定义错误处理(IErrorHandler接口的用法)