如何解决“操作已超时”问题错误
本文关键字:超时 操作已超时 错误 问题 操作 何解决 解决 | 更新日期: 2023-09-27 17:54:29
我有一个问题,在下载数据时显示错误"操作已超时"。
我能做什么来解决这个错误?我使用的是Win forms(c#),这是我的代码,请检查并给出建议。我应该在哪里更改代码,请帮助我…
public void ProcessData()
{
try
{
string MessageTitle = "";
int pages = Convert.ToInt32(txtPages.Text);
for (int k = Count; k <= pages; k++)
{
string url = "http://www.yellowpages.com/" +StateName.ToLower()+ "/" + CategoryName + "?g=" + StateName + "&page=" + k + "&q=" + CategoryName + "";//txtYP.Text + k;
System.Net.HttpWebRequest httpRequest;
System.Net.HttpWebResponse httpResponse;
System.IO.StreamReader SReader;
string html;
httpRequest = (System.Net.HttpWebRequest)(System.Net.HttpWebRequest.Create(url));
httpRequest.Method = "GET";
httpResponse = (System.Net.HttpWebResponse)(httpRequest.GetResponse());
SReader = new StreamReader(httpResponse.GetResponseStream());
html = SReader.ReadToEnd();
string strDummy = html;
httpResponse.Close();
距离请求超时还有多长时间?您是否能够从web浏览器导航到该url ?
将HttpWebRequest的HttpWebRequest.ReadWriteTimeout
属性设置为比当前高得多的值。缺省值是5分钟。不知道为什么要花5分钟以上。
与其阻塞getresponse,不如使用异步回调(BeginGetResponse
/EndGetResponse
)。
编辑
<system.diagnostics>
<trace autoflush="true" />
<sources>
<source name="System.Net">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.HttpListener">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Sockets">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
<source name="System.Net.Cache">
<listeners>
<add name="System.Net"/>
</listeners>
</source>
</sources>
<sharedListeners>
<add
name="System.Net"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="trace.log"
traceOutputOptions = "ProcessId, DateTime"
/>
</sharedListeners>
<switches>
<add name="System.Net"
value="Verbose" />
<add name="System.Net.Sockets"
value="Verbose" />
<add name="System.Net.Cache"
value="Verbose" />
<add name="System.Net.HttpListener"
value="Verbose" />
</switches>
</system.diagnostics>
将此部分添加到应用程序的app.config中的configuration
部分中。添加上述内容后,重新构建解决方案并运行它。查看应用程序bin目录下的trace.log,了解更多细节。
将此添加到您的代码中:
httpRequest。超时时间 = 3600000;
我在服务器上执行控制台应用程序时遇到了同样的问题。下面的解决方案对我有用:
取消internet选项中Lan设置下的自动配置脚本,并检查自动检测设置。