0

我正在使用 ACE TAO 运行一个多程序项目。我设置了环境变量并编译了 ACE_TAO 环境。然后我将 .bat 复制tao_cosnaming.exe到我的项目运行目录并使用 .bat 启动命名服务。

如果我直接启动它们,程序运行良好,但是当我在调试模式下调用 obj = orb->resolve_initial_references("NameService") 时,它们无法正确获取“NameService”。(我无法运行 obj->_non_existent(),它会引发错误)。

似乎是因为命名服务是作为远程服务实现的。当我调用 obj = orb->invoke resolve_initial_references("RootPOA") 时,一切都很好,因为 RootPOA 是本地对象,所以 obj->_non_existent() 立即返回。

.bat 文件如下:

cd /D %DTAX_RUN_DIR%
tao_cosnaming -ORBEndPoint iiop://%DTAX_NAME_SERVICE_HOST%

和是DTAX_RUN_DIR环境DTAX_NAME_SERVICE_HOST变量。DTAX_RUN_DIR是项目运行目录和DTAX_NAME_SERVICE_HOST=169.254.51.81:10493

有人可以分享一些关于出了什么问题的想法吗?谢谢!

4

1 回答 1

0

仅使用您提供的信息很难给出明确的解决方案,但在我的项目中,我需要将“-c”(不带引号)作为命令参数传递,以便我可以调试它,也许您需要这样做。在项目属性的 Visual Studio 中,您可以在属性/调试中找到命令参数字段。

于 2016-09-26T15:09:42.597 回答