我正在使用 .NET MVC Framework(v 4.8)通过 sap.middleware.connector(sapnco.dll 和 sapnco_util.dll)中的 RfcDestinationManager 调用 SAP 的 RFC 函数。
该网站托管在 .NET CLR 版本为 v4.0 的 IIS 服务器上。
当我使用参数FunctionalLocationID 调用RFC 来检索SAP 通知号码时,就会出现我遇到的问题。虽然它在大约 80% 的时间内运行顺利,但偶尔会在 IIS 服务器内崩溃。有趣的是,代码中没有任何异常,SAP 端也没有任何错误痕迹。该问题的唯一指示出现在托管服务器的事件查看器中。
下面,我附上了遇到的错误的屏幕截图以供进一步检查。
事件“1”的日志:
Application: w3wp.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
at System.ThrowHelper.ThrowInvalidOperationException(System.ExceptionResource)
at System.Collections.Generic.Dictionary`2+KeyCollection+Enumerator[[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.__Canon, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]].MoveNext()
at SAP.Middleware.Connector.RfcSessionManager.UpdateSessions(System. Object)
at System.Threading.TimerQueueTimer.CallCallbackInContext(System.Object)
at System.Threadinq.ExecutionContext.RunInternal(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.ExecutionContextRun(System.Threading.ExecutionContext, System.Threading.ContextCallback, System.Object, Boolean)
at System.Threading.TimerQueueTimer.CallCallback()
at System.Threading.TimerQueueTimer.Fire()
at System.Threading.TimerQueue.FireNextTimers()
at System.Threading.TimerQueue.AppDomainTimerCallback(Int32)
事件“2”的日志:
事件“3”的日志:
我检查了代码中的异常情况并检查了 SAP 中的错误跟踪,但没有发现任何结果。我还尝试更改应用程序池配置。
看起来像是 SAP NCo 中的一个错误。如果您可以使用最新的 NCo 版本重现它,那么您应该在组件 BC-MID-CON-NCO 下打开 SAP 支持票证。