在我们的应用程序中,我们在客户端使用一个ActiveX控件,该控件是用VisualVISUAL6.0开发的。我们还使用omniORB 2.7提供到服务器应用程序的连接。它一直运行良好,但现在我们需要在Windows 7,64位PC上运行这个应用程序。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位机器上这样做。我试图找出异常的原因,但我所能得到的只有NP_RepositoryId();它打印出来:NP_RepositoryId()。
我不认为它有连接问题;因为ORB的init()函数没有问题。我也不认为超过了允许的连接数量,这是没有意义的。上面写着NO_RESOURCES。我试图打印minor代码,但结果却是空的。我还能做什么?
编辑:--我用以下内容启动服务器应用程序:-ORBInitialHost 192.168.1.8 -ORBInitialPort 900 -BOAiiop_port 5140
发布于 2013-05-23 13:05:31
听起来您的客户端在查找名称服务的初始引用时遇到了困难。检查如何将此信息提供给客户端,即omniORB配置文件、环境变量、命令行参数或注册表(在Windows上)。
https://stackoverflow.com/questions/16695833
复制相似问题