【问题标题】:Low throughput while using http remoting C#使用 http 远程处理 C# 时吞吐量低
【发布时间】:2010-09-27 07:21:49
【问题描述】:
我在 C# 中使用 http 远程处理在两个应用程序之间进行通信。
早些时候,当我在一台机器/两台机器上运行这两个应用程序时,它非常慢。
我们有一个代理服务器来连接到互联网。我们在 IE 中设置了“绕过本地地址的代理服务器”,现在当我在一台机器上运行这两个应用程序时,通信发生得非常快。 (几乎是 10 倍)
但如果我在不同的机器上运行每个应用程序,那么它仍然很慢,就像设置“绕过代理服务器...”之前的情况一样
任何见解都会有所帮助。
【问题讨论】:
标签:
c#
performance
proxy
remoting
【解决方案1】:
您要发送什么样的数据,以什么速率发送?您是否对远程 (MarshalByRefObject) 对象进行了大量调用?
实际上,通过远程处理很难完全控制数据。就个人而言,我会推荐一些基于消息的东西,例如 WCF。这使得系统之间的接口更加明确和可预测。
如果代理是一个关键点,您仍然可以通过 proxycfg.exe 绕过远程地址
【解决方案2】:
正如人们所担心的那样,远程调用并不多。
一次远程调用在不同机器上需要 10 秒,而在单台机器上只需要 350 毫秒。
当我运行 proxycfg.exe 时,它显示“直接访问(无代理服务器)”