Тип "SAP.Middleware.Connector.RfcCommunicationException" не определен

Я уже нашел это: Получить тип исключения из исключения

Данный ответ является именно тем, что я имел в своем коде, но тип "SAP.Middleware.Connector.RfcCommunicationException" не определен в моем SAPConnector, как кажется.

Соответствующий фрагмент кода выглядит следующим образом:

Public Sub RFC_Connect()
    Dim rfcFunctionStandort As IRfcFunction
    Try
        'Build RFC-Connection
        RfcDestinationManager.RegisterDestinationConfiguration(New SAP_Connect)
        rfcDestination = RfcDestinationManager.GetDestination("SomeDestination")
    Catch ex As SAP.Middleware.Connector.RfcCommunicationException
        'Connection Refused
        'Set the app to Offline-Mode
    Catch ex As Exception
        frmHauptmenue.txtEdit.ErrorLog(ex.Message)
    End Try
End Sub

При выполнении этого без первого оператора catch он генерирует исключение RfcCommunicationException, указанное выше.

Public Sub RFC_Connect()
    Dim rfcFunctionStandort As IRfcFunction
    Try
        'Build RFC-Connection
        RfcDestinationManager.RegisterDestinationConfiguration(New SAP_Connect)
        rfcDestination = RfcDestinationManager.GetDestination("SomeDestination")
    Catch ex As Exception
        frmHauptmenue.txtEdit.ErrorLog(ex.Message)
    End Try
End Sub

Импорт самого коннектора сделан и работает:

Imports SAP.Middleware.Connector

1 ответ

SAP NCo3 состоит из двух DLL: sapnco.dll и sapnco_utils.dll. Возможно, вы упоминали только об одном из них в своем проекте Visual Studio? В моем проекте у меня нет проблем с использованием RfcCommunicationException!

Фактически: Visual Studio показывает, что исключение RfcCommunicationException экспортируется из сборки sapnco_utils. Это дает мне еще одну идею: sapnco.dll в основном не зависит от платформы, но sapnco_utils.dll содержит неуправляемые модули C/C++ и поэтому должен использоваться в зависимости от платформы (либо 32-битная /x86, либо 64-битная /x64)! Таким образом, две другие возможные причины вашей проблемы могут быть:

  • Вы определили ваш проект Visual Studio как "Смешанная платформа"
  • Вы определили ваш проект Visual Studio как x86, но загрузили / установили версию NCo3 для x64 или наоборот (определили проект как x64 и скачали версию для x86).
Другие вопросы по тегам