FtpWebRequest连接不上服务器时要很长时间才返回连接失败的消息,TimeOut设置无效
部分代码如下:
//System.Net.ServicePointManager.DefaultConnectionLimit = 500;//无效设置
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(UploadPath);
request.Proxy = null; // 无效
request.Timeout = 5000; // 无效
request.KeepAlive = false;
request.UseBinary = true;
request.UsePassive = f.Passive;
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(f.Username, f.Password);
......(省略部分不相关的代码)
using (Stream requestStream = request.GetRequestStream())//就是此处,历时非常长
{
using (FileStream fs = File.Open(f.SourceFile, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
{
......省略部分代码
}
}
using (FtpWebResponse response = (FtpWebResponse)request.GetResponse())
----------------------------分割线-----------------------------
整个效果就是我点击上传文件以后,非常长的时间才返回消息告诉我“连接服务器失败”,这个时间太长了。
我试过用Timer,但在timer_Tick()中抛出异常的话,客户端捕获不到,VS还会出错,也获取不到失败的确切原因,不知道各位有没有解决方法或意见提供?