连接断开时下载超时

本文关键字:超时 下载 断开 连接 | 更新日期: 2023-09-27 18:27:15

可能重复:
连接断开时超时。请帮帮我

我想在我的代码中放一个暂停。当文件被下载时,我没有上网,它计数为60秒,如果连接没有恢复,就会发出一条消息。

这是代码:

    string novoNome;
    novoNome = strlocal + "''" + zipNome;
    using (WebClient wcDownload = new WebClient())
    { 
          try
            {
                if (!Directory.Exists(strlocal))
                {
                    Directory.CreateDirectory(strlocal);
                }
                #region comunicação para download
                //string saida;
                // cria uma requisição do arquivo para download
                webRequest = (HttpWebRequest)WebRequest.Create(url);
                webResponse = (HttpWebResponse)webRequest.GetResponse();                    
                //Perguntar o tamanho do arquivo
                Int64 fileSize = webResponse.ContentLength;
                Uri uri = new Uri(url);
                // Abrindo arquivo para Download
                strResponse = wcDownload.OpenRead(uri);
                // Criando novo arquivo para salvar no HDD
                strLocal = new FileStream(novoNome, FileMode.Create, FileAccess.Write, FileShare.None);
                #endregion
                #region transferencia
                int bytesSize = 0;
                byte[] downBuffer = new byte[2048];                   
                try
                {
                    while ((bytesSize = strResponse.Read(downBuffer, 0, downBuffer.Length)) > 0)
                    {                           
                        strLocal.Write(downBuffer, 0, bytesSize);
                        //if(this.IsAccessible)
                        this.Invoke(new UpdateProgessCallback(this.UpdateProgress), new object[] { strLocal.Length, fileSize });
                        //wcDownload.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wcDownload_DownloadProgressChanged);                              
                    }                        
                }
                catch (Exception e)
                {
                }
                #endregion                    
            }                
            finally
            {
                strResponse.Close();
                strLocal.Close();
            }
        }

有人能帮我吗?

连接断开时下载超时

您可以在WebRequest实例上设置超时。类似于:webRequest.Timeout=60000;在超时的情况下,将抛出一个WebException。有关详细信息,请查看MSDN文档。

您应该将Timeout属性设置为WebRequest类。

http://msdn.microsoft.com/en-us/library/system.net.webrequest.timeout.aspx

您可以设置两个超时,一个是前面提到的设置webRequest.timeout的答案。另一个在您的情况下有用的是:

webResponse.GetResponseStream().ReadTimeout = 60000;    

当你的互联网连接中断60年代时,这将引发一个例外。。。。