问题就出在这个网址,实际上换个有明确后缀名的网址就可以顺利下到文件                WebRequest req = WebRequest.Create(UpdaterUrl);
                WebResponse res = req.GetResponse();
                string aa = res.ContentType;
                if (res.ContentLength > 0)
                {
                    try
                    {
                        WebClient wClient = new WebClient();
                        wClient.DownloadFile(UpdaterUrl, SaveFilePath);
                        return true;
                    }
                    catch (Exception ex)
                    {
                        WriteLog.WriteLogIn(ex.Message);
                        return false;
                    }
                }
                else
                {
                    return false;
                }
获取长度发现是-1,
比如传入的URL是 http://*******/****/UpdateClient.do?version=1.0
            或则 http://*******/****/downfile
实际上这2个网页打开后是XML文件,在网页上直接开启,也可以看到里面的XML内容,
但问题是长度为-1,说明根本就没有获取到流流
如果换一个有明确文件后缀的文件就可以下载了
比如 http://*******/****/downfile.XML 就可以正常下载了

解决方案 »

  1.   

    不明白吗?
    用过WebRequest 下载没有?
    就是说WebRequest.Create(UpdaterUrl)的时候,
    如果传的是一个类似http://*******/****/downfile 无指明后缀名的网址的时候,
    在WebResponse res = req.GetResponse()获取流以后
    查看流的长度的时候res.ContentLength发现是-1
    也就是说实际上没有获取到流但是如果这个网址是http://*******/****/downfile.XML 指明的明确后缀名的时候,就可以顺利下载了
      

  2.   

    实际上
    WebClient wClient = new WebClient();
    wClient.DownloadFile(UpdaterUrl, SaveFilePath);方法还是可以下载到文件的,但是获取不到文件的头文件,拿不到文件的长度,这样很难判断是否能续传