XMLRPC c # клиент для клиента Python - метод не существует - PullRequest
1 голос
/ 19 августа 2011

Я искал в Интернете и видел следующий вопрос: XML-RPC C # и 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 Ответ

1 голос
/ 20 августа 2011

Я нашел проблему:

  1. Синтаксическая проблема server.register_function("HelloWorld", HelloWorld) должно быть server.register_function(HelloWorld, "HelloWorld").

  2. Это изменение также не сработало, поэтому я изменил форму имени функции helloWorld на hello, и она сработала (!)

...