我需要与Biztalk 2016环境进行SalesForce集成的帮助。
我正在使用“ WCF-WebHttp”适配器将请求发送到具有以下自定义行为的SalesForce,并将下面的挂起消息发送到FORCE.com。
那么,我是否需要在WCF行为(如TLS 1.1、1.2)上添加安全协议以通过BizTalk调用salesforce API?
发送到带有URI“ https://na59.salesforce.com/services/Soap/c/43.0/00Df4000001dsdy”的发送端口“ DeveloperForce.SendCreateAccount.REST”上的适配器“ WCF-WebHttp”的消息被挂起。 错误详细信息:System.ServiceModel.Security.SecurityNegotiationException:无法使用权限“ na59.salesforce.com”为SSL / TLS建立安全通道。 ---> System.Net.WebException:请求已中止:无法创建SSL / TLS安全通道。 在System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) 在System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelAsyncRequest.CompleteGetResponse(IAsyncResult结果) ---内部异常堆栈跟踪的结尾---
服务器堆栈跟踪: 在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结果) MessageId:{345BABC2-0BE9-42F2-8D47-D123A402B3CD} InstanceID:{FEDE9235-18DB-4E3F-969E-6648A869F45A}
发送端口屏幕截图:
答案 0 :(得分:2)
销售部门要求使用TLS1.1 / 1.2进行通信。如果您没有BizTalk 2016最新的CU5,则需要在自定义服务行为(更多工作)或自定义管道组件中设置安全协议。您只需要设置System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls11 or Tls12
或根据CU5添加了TLS1.2支持。
答案 1 :(得分:0)
这听起来像是信任问题。也许认证链无法解决/不被信任。使用certmgr.msc进行检查。
答案 2 :(得分:0)
您是否已安装SalesForce证书?在使用biztalk服务帐户的Biztalk计算机上?