我正在使用连接器将SAP系统与.NET 4.0连接。...我已经创建了一个示例窗口应用程序来检查它是否正在连接。这是我的代码...
private void Form1_Load(object sender, EventArgs e)
{
try
{
SAPSystemConnect sapCfg = new SAPSystemConnect();
RfcDestinationManager.RegisterDestinationConfiguration(sapCfg);
RfcDestination rfcDest = null;
rfcDest = RfcDestinationManager.GetDestination("Dev");
}
catch (Exception ex)
{
// MessageBox.Show("ERROR");
label1.text=ex.Message;
}
}
当我运行此代码时,什么也不会发生...即使我在应用程序设置(配置文件)中给出了错误的用户名和密码,也没有显示任何例外,它只是加载表单...
有人可以清楚我的疑问吗?我们还有其他方法可以找到该系统是否已连接?
SAP Net连接器使用连接池。因此,您通常不会连接或断开自己的连接,NCO库为您做到了。一旦您实际需要建立连接,就会建立。要简单地测试您的代码,您可以尝试创建IRFCFUNCTICT实例:
...
rfcDest = RfcDestinationManager.GetDestination("Dev");
IRfcFunction fnc = rfcDest.Repository.CreateFunction("RFCPING");
...
应该触发连接。但是通常,您不需要在与SAP系统进行通信之前打开连接,您只需要为无法建立连接的可能性做好准备(错误的参数,系统下降等)。
您可以做的一件事是通过使用
进行登记后的配置。rfcdestinationManager.unregisterDestinationConfiguration(SAPCFG);
和下一次尝试再次连接注册并使用。