Тип "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).