XML RPC - 从 C# 调用 python 函数

2023-12-30

我正在使用库xml-rpc.net.2.5.0用于在 C# 中创建调用一些 python 方法的 XML RPC 客户端。客户端位于Windows7机器中,服务器位于运行red hat的VMWare中。

调用python函数的客户端代码(main方法内的代码):

IRemoteKillTest iRemoteKillTest = XmlRpcProxyGen.Create<IRemoteKillTest>();

int result = iRemoteKillTest.kill();
Console.WriteLine("Result = " + result);
Console.ReadLine();

客户端界面:

[XmlRpcUrl("http://192.ZZZ.YYY.XXX:8000/RPC2")]
public interface IRemoteKillTest : IXmlRpcProxy
{
    [XmlRpcMethod]
    int kill();
}

[XmlRpcUrl("http://192.ZZZ.YYY.XXX:8000/RPC2")]
public interface IRemoteMsgTest : IXmlRpcProxy
{
    [XmlRpcMethod]
    string msg();
}

服务器代码:

from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
import subprocess

class RequestHandler(SimpleXMLRPCRequestHandler):
       rpc_paths = ('/RPC2',)

server = SimpleXMLRPCServer(("192.ZZZ.YYY.XXX", 8000), requestHandler=RequestHandler)
server.register_introspection_functions()

class MyFuncs:
    def msg(self):
        return "It Works!"

    def kill(self):
        status = subprocess.call("ps -ef | grep <my_grep_info>  | grep -v grep | awk  '{ print $2 }' | xargs kill", shell=True)
        return status

 server.register_instance(MyFuncs())
 server.serve_forever()

如果客户端调用函数msg从 python 中它执行成功并且字符串返回到 c# 但如果它调用函数kill我得到以下异常:

XmlRpcFaultException:
Server returned a fault exception: [1] exceptions.Exception:method "kill" is not supported

对于任何其他 python 方法,如 os.listdir、subprocess.Popen 等,都会发生这种情况。 我已经进行了测试调用kill方法来自在 VMWare red hat 内运行的 python 客户端,并且它可以工作。

我需要尽快获得帮助,所以如果有人已经遇到过这个问题并对此做出解释,这将非常有用。 预先感谢并致以问候,


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML RPC - 从 C# 调用 python 函数 的相关文章

随机推荐

  • LNK2019 错误 C++ 无法解析的外部符号

    我收到这些错误消息 错误1错误LNK2019 未解决 外部符号 public void thiscall ArrayIntStorage sortOwn void sortOwn ArrayIntStorage QAEXXZ 函数中引用 m
  • 莱斯的教学目的?

    目的是什么les汇编指令 为什么我们需要加载es部分and寄存器 书中给出了以下例子 les bx p Load p into ES BX mov es bx al Store away AL 为什么我们需要加载es and bx在这种情况
  • node.js 检查远程 URL 是否存在

    如何在不下拉的情况下检查 URL 是否存在 我使用以下代码 但它会下载整个文件 我只需要检查它是否存在 app get api v1 urlCheck function req res var url req query url var r
  • 如何在具有隔离范围的指令中侦听站点范围的事件

    我正在使用具有隔离范围的指令在 angularjs 中创建自定义图表小部件 这个想法是 每个小部件在收到有关如何创建自身的基本配置信息后应该能够独立存在 该小部件将通过侦听 update data 事件与应用程序的其他部分进行通信 当事件被
  • 如何在 SQLite 中插入具有唯一 ID 的重复行?

    这看起来很简单 我想在 SQLite 表中复制一行 INSERT INTO table SELECT FROM table WHERE rowId 5 如果没有显式的唯一列声明 则该语句将起作用 但声明了表的第一列rowID INTEGER
  • 使用ActionCable,多种识别方式

    我使用 ActionCable 开发 Ruby on Rails 5 1 应用程序 通过 Devise 进行用户身份验证 https rubytutorial io actioncable devise authentication 适用于
  • Intellij 调试 Docker 容器不断给我 IO 异常握手失败

    我正在尝试在 Intellij v2020 1 中设置远程调试器 但不断收到以下错误 无法打开调试器端口 localhost 5005 java io IOException 握手失败 连接过早关闭 在我的 docker compose 文
  • 是否可以在cmake中不生成ALL_BUILD项目?

    我不需要 ALL BUILD 子项目 我可以避免生成它吗 谢谢 CMake 问题 16979 正在生成 ALL BUILD 目标 https gitlab kitware com cmake cmake issues 16979 The A
  • Facebook Graph API gem

    我想在我的 Rails 应用程序中使用 Facebook 图形 API 与 FB 图形 API 一起使用的推荐 gem 是什么 Thanks 这是一个写得很好的 FB 图形支持 Ruby https github com nov fb gr
  • 在 SSRS 中复制并粘贴表 (tablix)

    我有一个包含一天数据的 tablix 我需要在底部有相同的数据 但在 3 个不同的行中 我想在底部复制主要日期表 3 次 然后为每个表使用不同的数据集 我尝试复制 tablix 并将其粘贴到Body在 tablix 下方 但出现以下错误 报
  • C#:将数组分配给另一个数组:复制还是指针交换?

    抱歉问这个问题 我一直在谷歌上搜索了一下 但似乎出现的是对克隆或复制方法的引用 而不是我的问题的实际答案C 我有两个字节数组 它们正在被两个线程访问 private byte buffer1 new byte size private by
  • 如何使用 python 读取 CSV 文件时跳过空白行

    这是我的代码 我可以打印每一行 但是当出现空白行时 它会打印 由于CSV文件格式 所以我想在出现空行时跳过 import csv import time ifile open C Users BKA4ABT Desktop Test Spe
  • 如何将输出的 Fortran 二进制 NxNxN 矩阵读入 Python

    我用 Fortran 写出了一个矩阵 如下所示 real kind kind 0 0d0 dimension 256 256 256 dense CALCULATION inquire iolength reclen dense open
  • 如何在不不断扫描的情况下检测目录或文件何时发生更改

    除了读取所有文件并将它们与以前的快照进行比较之外 有没有办法在 Windows 中的 C 中检测目录何时发生更改 如果需要的话 我不介意 PInvoke EDITFileSystemWatcher 类很棒 但有一个问题是您必须启动后台任务
  • 一对一字段 Django 管理员

    编辑为使用一对一字段 我想将建筑物的面积添加到 django modeladmin 中 表结构是 class Area models Model id models IntegerField Buildings db column id a
  • Kubernetes Nginx Ingress 删除部分 URL

    我正在 Kubernetes 在 AKS 上 部署一个简单的应用程序 该应用程序位于使用 Nginx 的 Ingress 后面 并使用 Nginx helm 图表进行部署 我遇到一个问题 由于某种原因 Nginx 似乎没有将完整的 URL
  • AWS lambda读取zip文件执行验证并解压到s3存储桶(如果验证通过)

    我有一个 zip 文件到达 s3 存储桶的要求 我需要使用 python 编写一个 lambda 来读取 zip 文件 执行一些验证并在另一个 S3 存储桶上解压缩 Zip 文件包含以下内容 a csv b csv c csv trigge
  • 读取 HttpPost 响应

    我使用此代码向 http 服务器发送请求 HttpClient client new DefaultHttpClient HttpPost post new HttpPost http 192 168 0 1 test php HttpRe
  • 一步一步 oAuth Rest C# winform 示例 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我已经尝试了一段时间了 需要从头开始
  • XML RPC - 从 C# 调用 python 函数

    我正在使用库xml rpc net 2 5 0用于在 C 中创建调用一些 python 方法的 XML RPC 客户端 客户端位于Windows7机器中 服务器位于运行red hat的VMWare中 调用python函数的客户端代码 mai