resolve_initial_references导致系统异常

resolve_initial_references causes a SystemException

本文关键字:系统 异常 references initial resolve      更新时间:2023-10-16

我们在客户端中使用ActiveX控件,该控件是在应用程序中使用Visual C++6.0开发的。我们还使用omniORB 2.7来提供到服务器应用程序的连接。它一直运行良好;但现在我们需要在Windows764位电脑上运行这个应用程序。ActiveX控件正在工作;但在C++代码中,当它调用ORB的resolve_initial_references函数时,如下所示:

try 
{
    // Obtain a reference to the root context of the Name service:
    CORBA::Object_var initServ;
    initServ = orb->resolve_initial_references("NameService");
}   
catch(CORBA::ORB::InvalidName& ex)
{
    FormAndOpenHataDialog("Service Required is Invalid [does not exist] !", __FILE__, __LINE__);
    return CORBA::Object::_nil();
}
catch(CORBA::SystemException & ex)
{       
    FormAndOpenHataDialog(ex.NP_RepositoryId() , __FILE__, __LINE__);
    return FALSE;
}

它抛出一个SystemException。它在XP 32位机器上没有做到这一点。我试图找出异常的原因;但我只能得到CCD_ 2;并打印:IDL:omg.org/CORBA/NO_RESOURCES

我不认为它有连接问题;因为ORB的CCD_ 3函数工作起来没有问题。我也不认为超过了允许的连接数量;这没有道理。它只是说没有资源。我尝试打印minor代码;但它是空的。我还能做什么?

编辑:我用以下命令启动服务器应用程序:-ORBInitialHost 192.168.1.8 -ORBInitialPort 900 -BOAiiop_port 5140

听起来您的客户端很难找到名称服务的初始引用。检查如何将这些信息提供给客户端,即omniORB配置文件、环境变量、命令行参数或注册表(在Windows上(。