C# Windows 7中使用XML-RPC.NET的慢速XML-RPC

C# Windows 7中使用XML-RPC.NET的慢速XML-RPC,c#,.net,python,windows-7,xml-rpc,C#,.net,Python,Windows 7,Xml Rpc,我正在考虑使用XML-RPC.NET与用Python编写的Linux XML-RPC服务器通信。我尝试过库克计算公司的XML-RPC.NET中的一个示例应用程序(MathApp),但该应用程序在同一个局域网内添加两个数字需要30秒的时间 我还尝试在Windows7上运行一个用Python编写的简单客户机来调用同一台服务器,它在5秒钟内做出响应。该机器有4 GB的RAM,具有相当的处理能力,因此这不是一个问题 然后,我尝试使用Java和PHP从WindowsXP系统调用服务器。两种反应都非常迅速,

我正在考虑使用XML-RPC.NET与用Python编写的Linux XML-RPC服务器通信。我尝试过库克计算公司的XML-RPC.NET中的一个示例应用程序(MathApp),但该应用程序在同一个局域网内添加两个数字需要30秒的时间

我还尝试在Windows7上运行一个用Python编写的简单客户机来调用同一台服务器,它在5秒钟内做出响应。该机器有4 GB的RAM,具有相当的处理能力,因此这不是一个问题

然后,我尝试使用Java和PHP从WindowsXP系统调用服务器。两种反应都非常迅速,几乎是瞬间的。服务器在本地主机上的响应也很快,所以我认为延迟不是由服务器引起的

我的谷歌搜索给我带来了一些关于Windows使用IPv6的问题,但我们对服务器的调用确实在同一子网中包含IPv4地址(而不是主机名)。不管怎样,我关闭了IPv6,但没有任何改变


是否还有其他方法可以检查延迟的可能原因

在客户端计算机上运行数据包捕获,检查网络流量计时与调用函数的时间

这可以帮助您确定延迟在您缓慢的过程中的位置,例如应用程序启动时间、名称解析等

如何从客户端寻址服务器?通过IP?通过FQDN?在您使用的每个应用程序中,寻址方法是否相同

如果从同一慢速应用程序多次调用同一远程过程,所用时间是否会线性增加?

存在影响
BaseHTTPServer
及其子类(包括
SimpleXMLRPCServer
)的因素。基本上,您的服务器可能会为它试图记录的每个IP地址调用
socket.getfqdn
函数。这可能更好地解释了这一点

这里描述了TL的变通方法;博士:

import BaseHTTPServer
def not_insane_address_string(self):
    host, port = self.client_address[:2]
    return '%s (no getfqdn)' % host #used to call: socket.getfqdn(host)
BaseHTTPServer.BaseHTTPRequestHandler.address_string = \
    not_insane_address_string

获取Wireshark()并查看线路上发生了什么-这可能会将您指向罪犯(或者至少缩小范围)。特别是因为您可以将其与正常工作的通信进行比较。xml-rpc并不以速度快而闻名(即使这里可能有问题),您可能想看看ICE(www.zeroc.com)它将以更快的速度提供相同类型的功能。工作非常完美:对于python 3.1,请使用http.server import BaseHTTPRequestHandler