本文适用于以下产品:
- BizTalk Adapter Pack 2.0
- BizTalk Adapter Pack 2010
症状
请考虑以下情形:
客户端程序使用 Microsoft Windows Communication Foundation (WCF 基于) 的 SAP 适配器 (也称为 Microsoft BizTalk Adapter for mySAP Business Suite 3.0) 在 SAP 系统上的 WCF 服务模型中调用一些远程函数调用。
注意:此适配器包含在 Microsoft BizTalk Adapter Pack 2.0 或 Microsoft BizTalk Adapter Pack 2010 中。
发生网络问题,WCF-SAP 适配器失去与 SAP 系统的连接。
在这种情况下,SAP 系统返回RFC_FAILURE错误代码,并且远程函数调用不起作用。 此外,遇到 ThreadAbortException 异常,您会收到以下错误:
注意
System.Threading.ThreadAbortException:线程正在中止。
at RfcCallReceiveExU (UInt32 , Char* , RFC_PARAMETER* , RFC_PARAMETER* , RFC_PARAMETER* , RFC_TABLE* , char** )
at Microsoft.Adapters.SAP.CNativeInvoker.Invoke (CNativeInvoker* , UInt32 connectionHandle, Char* m_szFunctionName)
一段时间后,会遇到许多 RFCException 异常,并且您会收到许多类似于以下内容的错误:
注意
Microsoft.Adapters.SAP.RFCException: Details: ErrorCode=RFC_FAILURE. AdapterErrorMessage=RfcCallReceiveEx 在调用 RFC 时返回的错误:Z_GET_PO_BY_SAP。
此外,在 BizTalk Server 上还会生成以下调用堆栈跟踪:
注意
at Microsoft.Adapters.SAP.RFCException.HelperThrow (Int32 retCode, String additionalErrorMessage)
在 Microsoft.Adapters.SAP.RfcOutboundInvoker.Invoke ()
原因
出现此问题的原因是 WCF-SAP 适配器错误地重用了 SAP 系统中的 SAP 通道。
WCF-SAP 适配器收到 RFC_FAILURE 错误代码后,WCF-SAP 适配器遇到错误。 因此,错误地重用了 SAP 系统中的 SAP 通道。
解决方法
累积更新信息
对于 BizTalk Adapter Pack 2010
解决此问题的修补程序包含在 BizTalk Adapter Pack 2010 的累积更新包 2 中。 有关如何获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2572999 适用于 BizTalk Adapter Pack 2010 的累积更新程序包 2
对于 BizTalk Adapter Pack 2.0
解决此问题的修补程序包含在 BizTalk Adapter Pack 2.0 的累积更新程序包 3 中。
有关如何获取累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2557150 适用于 BizTalk Adapter Pack 2.0 的累积更新包 3
状态
Microsoft 已确认在 "适用于" 部分中所列的 Microsoft 产品中存在问题。
详细信息
有关如何使用 WCF 服务模型调用 RFC 的更多信息,请访问以下 MSDN 网站:
如何使用 WCF 服务模型调用 RFC有关 BizTalk Server 修补程序的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
2003907 有关BizTalk Server修补程序的信息