WebClient client = new WebClient();
                try
                {
                   
                    client.Credentials = CredentialCache.DefaultCredentials;
                    buffer = client.DownloadData(url);//http路径资源文件
                    
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                    return;
                }
                client.Dispose();
System.Net.WebException: 在 WebClient 请求期间发生异常。 ---> System.IO.IOException: 无法从传输连接中读取数据: 远程主机强迫关闭了一个现有的连接。。 ---> System.Net.Sockets.SocketException: 远程主机强迫关闭了一个现有的连接。   在 System.Net.Sockets.Socket.Receive(Byte[] buffer, Int32 offset, Int32 size, SocketFlags socketFlags)   在 System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)   --- 内部异常堆栈跟踪的结尾 ---   在 System.Net.ConnectStream.Read(Byte[] buffer, Int32 offset, Int32 size)   在 System.Net.WebClient.DownloadBitsState.RetrieveBytes(Int32& bytesRetrieved)   在 System.Net.WebClient.DownloadBits(WebRequest request, Stream writeStream, CompletionDelegate completionDelegate, AsyncOperation asyncOp)   在 System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)   --- 内部异常堆栈跟踪的结尾 ---   在 System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)   在 System.Net.WebClient.DownloadData(Uri address)   在 System.Net.WebClient.DownloadData(String address)   在 fileUpload.File.Insert(String filePath, String Archive_Name) 位置 D:\我的文档\Visual Studio 2010\Projects\fileupload\fileUpload\File.cs:行号 53

解决方案 »

  1.   

    【问题补充】
    小文件可以的,稍微大点就出异常。是文件大小要配置的问题吗?在webconfig这样配置<httpRuntime  maxRequestLength="102400" executionTimeout="600"/>有问题?
      

  2.   

    这个是对方服务器的问题,这个web.config要在对方服务器上改
      

  3.   

    谢谢你的回复。我是在服务器上的web.config中修改的。把DownloadData()方法换成OpenRead()发现就可以了。不过OpenRead()方法返回的stream,但是stream不能获取Length属性,这样我定义byte[] bufeer;就不能初始化给大小了
      

  4.   

    google 
    httpwebrequest下载文件
    webclient下载文件
      

  5.   

    stream不能获取Length属性,谁告诉你的
    stream也有length,而且stream.Read可以将数据读到buffer(byte[])中
      

  6.   

    stream有Length属性,但是使用会报异常,此流不支持查找操作。stream.Read可以将数据读到buffer(byte[])中这个我知道。