博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# FTP上传文件报550异常解决方案
阅读量:4608 次
发布时间:2019-06-09

本文共 788 字,大约阅读时间需要 2 分钟。

最近做项目,要用到FTP上传文件和下载文件。

然后就用FtpWebRequest类写个上传和下载的程序。

主要是对EMS物流这一块,每天定时上传礼品配送的信息,然后定时下载生成好的物流信息。

就是在上传的时候,遇到一个很怪异的问题。本地测试没有任务问题,但是放到服务器上问题就来了。

主要是在服务器上,上传以后就报异常,而且EMS FTP服务器也有这个文件,就是没有数据。

一直报异常550,连接超时,然后在网上找原因啊,多数是说地址是否正确,有没有权限之类的。

本身FtpWebRequest超时默认是5分钟的,但是没有到5分钟就报异常了。对着网上找到的资料一点一点的设置,根本就不行。

好吧,以上都解决不了,那就从服务器找起吧,查看事件啊,没有一点有用的信息。想想可能是防火墙的问题,准备让网管到机房把物理防火墙先停掉。

但是吧,机房不是每天能进的,决定先从代码找起。看看每个属性的设置,对着MSDN一点一点的找。

最后在FtpWebRequest 的UsePassive属性找到的原因,虽然VS里面有很好的智能提示功能, 但是提示的信息很简短。

看MSDN的备注有句话是这样描述的:如果 UsePassive 被设置为 true,FTP 服务器可能不会发送文件的大小,而且下载进度可能始终为零。如果 UsePassive 被设置为 false,则防火墙可能会引发警报并阻止文件下载。

我在写代码的时候,设置了False,所以,防火墙根本就不让我去读取文件的内容。设置成True,文件很快就上传成功了。

注意:如果设置成True,FTP服务器不会发送文件的大小,下载进度也可能始终为零。这个最好的解决办法,还是在防火墙上进行设置吧。

转载于:https://www.cnblogs.com/LeeYongze/archive/2012/06/25/2561458.html

你可能感兴趣的文章
request
查看>>
Python登录人人网并抓取新鲜事
查看>>
RNN教程之-2 LSTM实战
查看>>
计算两个时间之间相隔几个月
查看>>
Windows安装php Oracle扩展
查看>>
【WP开发学习笔记】之页面导航
查看>>
关于WebGIS开源解决方案的探讨
查看>>
Splash Screen 加载窗体 [not finished]
查看>>
练习 - MySQL
查看>>
mongoDB
查看>>
hdu5412(动态区间第k大)
查看>>
ElasticSearch 线程池类型分析之SizeBlockingQueue
查看>>
落谷 P1041 传染病控制
查看>>
《UNIX环境高级编程》(第三版)阅读笔记---2018-5-12
查看>>
【记录】css样式
查看>>
二叉树的镜像
查看>>
3. Spring 核心之 IOC(控制反转) & DI(依赖注入)
查看>>
进化树问题
查看>>
Winform知识
查看>>
HTML防止input回车提交表单
查看>>