【发布时间】:2018-12-07 18:06:36
【问题描述】:
我正在使用 C# 连接到 Web 服务以获取数据。但是,我目前在让代码在远程服务器上运行时遇到问题;当我说问题时,我的意思是它正在运行,但是客户端和服务器之间的连接速度非常慢(这不是我的错 - 客户端通过 web 服务提供了一个缓慢的结果集,并且他们已经按顺序关闭了所有超时这样做。)
if ((endpointConfiguration == EndpointConfiguration.SFFService))
{
System.ServiceModel.BasicHttpBinding result = new System.ServiceModel.BasicHttpBinding();
result.MaxBufferSize = int.MaxValue;
result.ReaderQuotas = System.Xml.XmlDictionaryReaderQuotas.Max;
result.MaxReceivedMessageSize = int.MaxValue;
result.AllowCookies = true;
result.OpenTimeout = TimeSpan.MaxValue;
result.CloseTimeout = TimeSpan.MaxValue;
result.SendTimeout = TimeSpan.MaxValue;
return result;
}
所以。不是一个好的开始。打开关闭并发送所有设置为最大值。
无论如何,我已经匹配了他们的长时间超时,并且一些较小的 Web 服务请求在服务器上完成并成功。然而,最大、最慢的只是无限期挂起,可能是因为我告诉它永远不会超时。
但是,我很确定还有其他问题发生,因为我把它放在了一夜之间,它就坐在那里。在本地,在我的开发机器上,虽然速度很慢,但它可以工作。
我的问题是,有没有人知道额外的事情来检查可能在这里发挥作用的环境?我想也许是防火墙,但鉴于小请求成功(并连接),调试慢速请求非常困难,因为我不知道要等多长时间才能接受程序不会做任何事情。
FWIW 我尝试通过浏览器进行连接,但浏览器只是坐在那里等待请求完成,而它永远不会完成(很可能是由于服务器上关闭了超时)。如果有任何方法可以查看还有多少请求需要完成(例如下载百分比),这可能会帮助我了解代码是否正在执行除等待之外的任何操作。
【问题讨论】:
-
您的客户端应用程序和浏览器都在代理后面吗?如果是这样,代理也可能超时 - 尝试绕过代理?
-
@Allumearz 本地没有。远程 - 我将如何检查?
标签: c# .net web-services debugging