使用 Python 在正在运行的 Windows 服务(进程)中调用 RPC 函数

Posted

技术标签:

【中文标题】使用 Python 在正在运行的 Windows 服务(进程)中调用 RPC 函数【英文标题】:Calling a RPC function in a running Windows service (process) using Python 【发布时间】:2009-10-07 22:59:40 【问题描述】:

我有想要使用 Python 脚本测试的 Windows 服务(充当服务器)。此服务是用 C++ 编写的,并公开了其他服务使用的几个 RPC 函数。我想使用我的 Python 程序模拟那些其他服务并从脚本中调用这些 RPC 函数。这是第一阶段。第二阶段发生在服务器服务通过另一个 RPC 调用响应其调用者服务时。这如何在 Python 中完成?

如果 Python(或其任何扩展)无法调用/接收 RPC,如果我更改主服务器服务代码并添加任何必要的代码,这是否可以完成,这最终会调用 RPC 相同的功能用于执行但可以从 Python 调用?

注意: 服务器服务使用 IDL 文件实现的原始 Windows RPC 实现 RPC 功能。也用 C++ 编写的其他服务对使用这些 RPC 感兴趣,它们正在使用 IDL 文件来生成进行通信所需的接口。不能使用 XML-RPC 或其他技术。

【问题讨论】:

【参考方案1】:

您在考虑哪种 RPC?如果是 XML-RPC,那么 Python 自带了SimpleXMLRPCServer 模块,可以让你用 Python 编写 RPC 服务器。

如果远程服务器使用DCOM,可以使用PythonCOM。

【讨论】:

它是使用 IDL 文件实现的原始 Windows RPC。 @haggag 你是说 COM 吧?

以上是关于使用 Python 在正在运行的 Windows 服务(进程)中调用 RPC 函数的主要内容,如果未能解决你的问题,请参考以下文章

我正在尝试使用 Windows 批处理文件来运行 python 代码,但是我遇到了以下错误:

如何在 Windows 中检查正在运行的 shell?

在 Windows 10 上从 python 运行时 ffmpeg.probe 不起作用

如何在 Windows 7 的命令提示符中运行 Python 程序?

python pip安装无法在Windows上运行

可以调用无限运行的 Python 脚本的 Windows 服务(在 C# 中)?