调用TLS 1.2兼容API时,BizTalk 2016 Feature Pack 3引发异常

时间:2019-04-29 18:49:46

标签: biztalk tls1.2 .net-4.6 biztalk-2016

为支持BizTalk 2016的TLS 1.2,我们已升级到BizTalk 2016 Feature Pack3。升级成功,我们的工作流没有问题,直到我们的网络关闭了对TLS 1.0和TLS 1.1的支持。之后,我们从BizTalk调用API时开始出现以下错误:我们知道该API支持TLS 1.2。

内部异常堆栈跟踪:

  

适配器无法发送要发送端口的消息   带有网址的“ SndPort_PostMsgfile”   “ https://demo-xxxxxx-api.abc.com/api/Message/MessageFile”。这将是   在为此发送端口指定的重试间隔后重传。   详细信息:“ System.ServiceModel.Security.SecurityNegotiationException:   无法使用权​​限建立SSL / TLS的安全通道   'demo-common-api.medimpactdirect.com'。 ---> System.Net.WebException:   该请求已中止:无法创建SSL / TLS安全通道。
  在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)   在   System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult   结果)

服务器堆栈跟踪:

  

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

     

在[0]处抛出异常:   System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage   reqMsg,IMessage retMsg)   System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData&   msgData,Int32类型)位于   System.ServiceModel.Channels.IRequestChannel.EndRequest(IAsyncResult   结果)   Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult   结果)。

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

注册表中是否需要更改?我尝试根据以下建议更新注册表: https://support.microsoft.com/en-us/help/3155464/ms16-065-description-of-the-tls-ssl-protocol-information-disclosure-vu

1 个答案:

答案 0 :(得分:1)

使用blog的建议解决了这个问题。

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

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