ers*_*had 1 biztalk salesforce
我正在研究SalesForce和BizTalk Server 2010之间的集成方案。我已阅读以下博客
http://soa-thoughts.blogspot.com.au/2010/08/biztalk-salesforce-and-msmq-part-i.html
http://soa-thoughts.blogspot.com.au/2010/08/biztalk-salesforce-and-msmq-part-ii.html
我按照帖子中的描述将sessionId设置为消息分配形状:
SfdcMessage(WCF.Headers) = "<headers><SessionHeader><sessionId>00DK0000005Du2o!AREAQLnrXpVFRAAgwT_Z7iaK0do1IltgHqDLyDfLhbkUGqvFMvzNURdgRtKdPc47cO9sZpOPJ0x8q496vQJsXKGrXt4BcdLW</sessionId></SessionHeader></headers>";
Run Code Online (Sandbox Code Playgroud)
但是,当我的发送端口调用SalesForce自定义Web服务时,出现以下错误
通过URI https://abc.xyz发送到发送端口“ WcfSendPort_SP”上的适配器“ WCF-BasicHttp”的消息已挂起。
错误详细信息:System.ServiceModel.FaultException:sf:INVALID_SESSION_IDINVALID_SESSION_ID:在SessionHeader中发现无效的会话ID:非法会话
在Microsoft.BizTalk.Adapter.Wcf.Runtime.WcfClient`2.RequestCallback(IAsyncResult结果)
我做了一些进一步的研究,并发现了这些帖子:
有没有人遇到这个问题?
任何帮助表示赞赏。
干杯,
关于此的几件事:
我在我的问题中所引用的博客文章太旧了,所以超速是正确的,因为需要在SessionHeader中添加名称空间,这在这里也提到了:http : //boards.developerforce.com/t5/General-Development / INVALID-SESSION-ID-Invalid-Session-ID-found-in-SessionHeader / td-p / 200705 “ soap标头中的SessionHeader和sessionId元素不在任何命名空间中,它们必须位于由WSDL。更新的API端点对此更加严格。”
一位朋友向我指出“ Microsoft BizTalk 2010:商业系统集成线”一书,作者写道:“不要忘记在SessionHeader节点上放置名称空间,因为Salesforce.com API对此要求严格,并且将返回无效的名称。如果缺少名称空间,则发送令牌消息。在本书中,SOAP标头的正确格式表示为:
SFDC_QueryRequest(WCF.Headers) = "<headers><SessionHeader xmlns='urn:enterprise.soap.sforce.com'><sessionId>" + Chapter10_SFDC.TokenManager.TokenManager.SessionId + "</sessionId></SessionHeader></headers>";
Run Code Online (Sandbox Code Playgroud)
基本上,我缺少名称xmlns ='urn:enterprise.soap.sforce.com'。
另外,在配置发送端口时,请确保导入自定义绑定* _Custom.BindingInfo.xml而不是.BindingInfo.xml,否则您仍然会遇到sessionId问题。
干杯。
| 归档时间: |
|
| 查看次数: |
5491 次 |
| 最近记录: |