BizTalk 2016功能包3在调用TLS 1.2兼容API时引发异常

BizTalk 2016功能包3在调用TLS 1.2兼容API时引发异常,biztalk,tls1.2,.net-4.6,biztalk-2016,Biztalk,Tls1.2,.net 4.6,Biztalk 2016,为了支持BizTalk 2016的TLS 1.2,我们升级到BizTalk 2016功能包3。升级成功,我们的工作流程正常工作,直到我们的网络关闭了对TLS 1.0和TLS 1.1的支持。之后,我们在从BizTalk调用API时开始出现以下错误:我们知道该API支持TLS 1.2 内部异常堆栈跟踪: 适配器无法将消息传输到发送端口 带有URL的“SndPort_postsgFile” "". 会的 在为此发送端口指定的重试间隔后重新传输。 详细信息:“System.ServiceModel.Se

为了支持BizTalk 2016的TLS 1.2,我们升级到BizTalk 2016功能包3。升级成功,我们的工作流程正常工作,直到我们的网络关闭了对TLS 1.0和TLS 1.1的支持。之后,我们在从BizTalk调用API时开始出现以下错误:我们知道该API支持TLS 1.2

内部异常堆栈跟踪:

适配器无法将消息传输到发送端口 带有URL的“SndPort_postsgFile” "". 会的 在为此发送端口指定的重试间隔后重新传输。 详细信息:“System.ServiceModel.Security.SecurityNegotiationException: 无法为具有权限的SSL/TLS建立安全通道 “demo common api.medimpactdirect.com.”-->System.Net.WebException: 请求被中止:无法创建SSL/TLS安全通道。
位于System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在 System.ServiceModel.Channel.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteTresponse(IAsyncResult 结果)

服务器堆栈跟踪:

在System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult结果) 在 System.ServiceModel.Channel.ServiceChannel.SendAsyncResult.End(SendAsyncResult 结果)在 System.ServiceModel.Channel.ServiceChannel.EndCall(字符串操作, 对象[]输出,IAsyncResult结果)位于 System.ServiceModel.Channel.ServiceChannel.EndRequest(IAsyncResult 结果)

在[0]处重试异常:在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg)在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32类型)at System.ServiceModel.Channel.IRequestChannel.EndRequest(IAsyncResult 结果)在 Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult 结果)”

我们希望确保从BizTalk发出的请求始终在TLS 1.2上。我们是否需要通过使用以下代码片段构建行为扩展来更新WebHTTP发送端口(如API中所做的那样)- ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls12

是否需要在注册表中进行更改?我尝试根据以下建议更新注册表:

通过使用客户的建议解决了这个问题

我们还必须为TLS 1.2协议HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols添加注册表项


此外,如果您使用的是SFTP适配器,BizTalk Server 2016功能包3需要WinScp版本5.13.1。如果您有旧版本,SFTP适配器将继续关闭。请参阅。

通过使用下面的建议解决了这个问题,我们还必须为TLS 1.2协议HKEY\U LOCAL\U MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols添加注册表项。您应该添加这一点作为答案