通过 C# Web API 访问 SAP RFC 时遇到错误。以下是详细信息:我能够从存储在 out 参数中的 SAP RFC 获得响应,但是在将其返回给我的函数时会引发异常。这是代码:
internal string FromBupaToBupaGuid(string sBupa)
{
using (SAPContext db = new SAPContext(base.GetConnectStringForRfcUser()))
{
ERPConnect.LIC.SetLic(base.GetLicenseKey());
string sBupaGuid;
SAPContext.MESSAGESTable mESSAGESTable = new SAPContext.MESSAGESTable();
sBupa = ToBupa(sBupa);
db.IST_GET_BPARTNER_GUID(out sBupaGuid, sBupa, mESSAGESTable);
return sBupaGuid;
}
}
这是异常信息:
System.AccessViolationException was unhandled
HResult=-2147467261
Message=Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source=ERPConnect40
StackTrace:
at ERPConnect.RFCAPI.RfcCallReceiveExt(Int32 handle, Int32 hSpace, String FuncName, StringBuilder Exception)
at ERPConnect.R3Connection.Ping()
at ERPConnect.Linq.ERPDataContext.Dispose(Boolean disposing)
at ERPConnect.Linq.ERPDataContext.Dispose()
注意:代码没有问题,因为它安静的旧代码并且在我早期的机器(Windows 7 + VS 2012)中运行良好,现在使用的是 Windows 8.1。
我已经尝试过:
- 选中/取消选中两者 - 工具 > 选项 > 调试 > 常规 > 抑制模块加载时的 JIT 优化(仅限托管)
- Visual Studio 2012 和 2013 都尝试过
- .Net 框架版本 4.5.2
请帮忙。