如何修复C#中的计时器勾选错误

本文关键字:错误 计时器 何修复 | 更新日期: 2023-09-27 18:00:38

我正在使用此代码从Internet地址接收数据。然而,当计时器第一次滴答作响时,连接正常,程序正常工作但在第二次中,这一行出现错误

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

我想知道如何解决这个问题。

计时器间隔为30秒。

代码:

private void timer1_Tick(object sender, EventArgs e)
{
    WebRequest request = WebRequest.Create("http://localhost  
    /go/online.asp?prog=y&rln=" + Properties.Settings.Default.cos);
    request.Credentials = CredentialCache.DefaultCredentials;
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    Stream dataStream = response.GetResponseStream();
    StreamReader reader = new StreamReader(dataStream);
    string responseFromServer = reader.ReadToEnd();
    reader.Close();
    dataStream.Close();
    response.Close();
}

错误:未处理WebException。远程服务器返回错误:(500)内部服务器错误。

如何修复C#中的计时器勾选错误

通常,当我使用计时器时,我会在开始处理之前停止计时器,然后在处理完成后重新启动它。试试看是否有效。

大多数情况下,这是因为上一个请求没有完成,而下一个计时器滴答作响。第一步是应该编写try/catch块来处理错误(或者只是忽略错误)。还要查看您得到的异常类型。

或者,您可以使用套接字递归地执行该函数,但需要一些等待时间。

也许您可以在计时器事件处理程序中停用计时器,并在最后对其进行响应。

如果它是(500) Internal Server Error,那么您必须与服务器核实错误。由于它是localhost,我认为您可以访问服务器。这就是错误所在。