类型" SAP.Middleware.Connector.RfcCommunicationException"未定义

时间:2017-03-21 07:25:34

标签: vb.net sap sap-connector

我已经找到了这个:Get Exception type from an exception

给出的答案正是我在代码中所拥有的,但" SAP.Middleware.Connector.RfcCommunicationException" 类型并未在我的SAPConnector中定义。 / p>

相关的代码片段如下所示:

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 个答案:

答案 0 :(得分:1)

SAP NCo3由两个DLL组成:sapnco.dll和sapnco_utils.dll。您是否在Visual Studio项目中仅引用其中一个?在我的项目中,使用RfcCommunicationException没有问题!

实际上:Visual Studio显示从sapnco_utils程序集导出RfcCommunicationException。这给了我另一个想法:sapnco.dll基本上与平台无关,但sapnco_utils.dll包含非托管C / C ++模块,因此需要以平台相关的方式使用(32位/ x86或64位/ x64)!因此,问题的另外两个可能原因可能是:

  • 您已将Visual Studio项目定义为“混合平台”
  • 您已将Visual Studio项目定义为x86,但已下载/安装了x64版本的NCo3,反之亦然(将项目定义为x64并下载x86版本)。