У меня проблема с библиотекой SAP NCO 3.0 , но я не могу даже войти на их веб-сайт для публикации на своих форумах из-за ошибки сервера 500.
Проблема в том, что у меня настроен RFCServer для получения iDocs из системы SAP (<i>IDOC_INBOUND_ASYNCHRONOUS</i>
для таблицы функций), который получает iDoc и выполняет некоторую обработку.
Когда сервер находится в процессе приема большого количества файлов и пользователь выключает RFCServer
, библиотека SAP выдает <i>AccessViolationException</i>
, вызывая сбой всего приложения.
Я пытался нарядить инкапсулированный метод Shutdown с атрибутом [HandleProcessCorruptedStateExceptions]
, но исключение все еще не обнаружено.
Код:
public void Shutdown()
{
try
{
if (_SapServer != null)
{
_SapServer.Shutdown(false);
}
}
catch (Exception e)
{
throw new Exception("Error stopping server", e);
}
if (_SapServer != null)
{
_SapServer.RfcServerError -= OnRfcServerError;
_SapServer.RfcServerApplicationError -= OnRfcServerApplicationError;
_SapServer.RfcServerStateChanged -= OnRfcServerStateChanged;
_SapServer.TransactionIDHandler = null;
}
}
Я выключил Shutdown (true) для Shutdown (false), что говорит ему прервать выполнение вызовов.
Трассировка стека:
"Попытка чтения илипамять с защитой от записи. Это часто указывает на то, что другая память повреждена. "
на STRCV (байт *, символ *, Int32 *, Int32 *, Int32 *, Int32 *, Int32 *, Int32 *)
в SAP.Middleware.Connector.CpicConnection.CpicReceive (тайм-аут Int32)
в SAP.Middleware.Connector.RfcConnection.Accept (тайм-аут Int32)
в SAP.Middleware.Connector.RfcConnection.RfcServerWorkerjfConCon ()
в System.Threading.ExecutionContext.RunInternal (ExecutionContext executeContext, обратный вызов ContextCallback, состояние объекта, логическое preserveSyncCtx)
в System.Threading.ExecutionContext.Run (исполнительный вызов ExecutionContext, обратный вызов contextCallback, состояние объекта, логический preserveSyncCextEU.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem ()
в System.Threading.ThreadPoolWorkQueue.Dispatch ()
в sapnco_utils.dll
Если кто-то может указать мнеправильное направление, так как я в основном зашел в тупик с этим.