XMLRPC c#客户端到python客户端 - 方法不存在

时间:2011-08-19 17:00:25

标签: c# python xml-rpc simplexmlrpcserver

我在网上搜索并看到了以下问题:XML-RPC C# and Python RPC Server

我正在尝试做同样的事,但我失败了。我得到异常“方法”HelloWorld“不支持......”

[XmlRpcUrl("http://192.168.0.xxx:8000/RPC2")]
public interface HelloWorld : IXmlRpcProxy
{
    [XmlRpcMethod]
    String HelloWorld();
}

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        HelloWorld proxy = CookComputing.XmlRpc.XmlRpcProxyGen.Create<HelloWorld>();
        textBox1.Text = proxy.HelloWorld();
    }
    catch (Exception ex)
    {
        HandleException(ex);
    }
}

我的Python服务器是:

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

def HelloWorld():
    return "This is server..."

server = SimpleXMLRPCServer(("192.168.0.xxx", 8000),
                        requestHandler=LGERequestHandler)

server.register_introspection_functions()
server.register_function("HelloWorld", HelloWorld)
server.register_instance(self)

# Run the server's main loop
server.serve_forever()

服务器已启动并正在运行,但我仍然遇到异常。

1 个答案:

答案 0 :(得分:1)

我发现了问题:

  1. 语法问题server.register_function("HelloWorld", HelloWorld)应为server.register_function(HelloWorld, "HelloWorld")

  2. 此更改也不起作用,因此我将函数名称格式helloWorld更改为hello并且它有效(!)