我已经找到了这个: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
答案 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)!因此,问题的另外两个可能原因可能是: