使用.NET自带组件上传文件到ftp服务器报错

slin60 2008-08-26 05:15:44
为什么上传文件到ftp服务器时,如果文件较大,当传了一定时间后会报如下错误:

无法将数据写入传输连接: 您的主机中的软件放弃了一个已建立的连接。。

也就是说上传时间是个固定值,超过时间后就会报如上错误
...全文
573 32 打赏 收藏 转发到动态 举报
写回复
用AI写文章
32 条回复
切换为时间正序
请发表友善的回复…
发表回复
wolf_zjh 2012-08-10
  • 打赏
  • 举报
回复
"报如下错误:远程服务器返回错误: (553) 不允许此文件名。

如果我把ftp服务器换成serv-u的话,就一切正常。

ftp服务器我是在本机上架设的,应该不存在设备问题。防火墙这些我也关了。"

如果我把ftp服务器换成serv-u的话,就一切正常。楼主这句话是什么意思呢?我也遇到报553这个错
slin60 2008-08-28
  • 打赏
  • 举报
回复
[Quote=引用 30 楼 slimfeng 的回复:]
楼主,ftp类已经发给你
刚才用IIS的ftp服务器上传下载3.5G的文件都没有问题,设置也没有特别的
连接限制为默认100,000
连接超时为120s,访问权限为允许读取写入
是不是你防火墙或其他设备的问题,可以用跟直连线连接两台电脑,不通过其他网络连接是不是正常。
[/Quote]


谢谢你啊,连接报错的问题自己解决了,是我代码有个小错误没发现。。。。。。


现在就是一个下载大文件的问题了,如果下载一个大文件(我测试时用的4.3G的文件,vs2008的安装包,呵呵),就会报如下错误:远程服务器返回错误: (553) 不允许此文件名。

如果我把ftp服务器换成serv-u的话,就一切正常。

ftp服务器我是在本机上架设的,应该不存在设备问题。防火墙这些我也关了。
slimfeng 2008-08-28
  • 打赏
  • 举报
回复
楼主,ftp类已经发给你
刚才用IIS的ftp服务器上传下载3.5G的文件都没有问题,设置也没有特别的
连接限制为默认100,000
连接超时为120s,访问权限为允许读取写入
是不是你防火墙或其他设备的问题,可以用跟直连线连接两台电脑,不通过其他网络连接是不是正常。
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 bejon 的回复:]
看大到什么程度,有些不太大的调下时间就行了
超大文件就需要自已写组件上传了
[/Quote]

关键是怎么调时间啊?


另外,iis建的ftp是不是不支持大文件下载?例如超过2G的?
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 27 楼 slimfeng 的回复:]
楼主,我可以传给你个ftp传输的类试试,把你邮箱告诉我。
[/Quote]
我邮箱是slin60@126.com

还是不行,如果这个问题没答案,那就换个问题:

是不是IIS自带的ftp服务器不支持大于2G以上的文件下载(分区格式为ntfs)?,如果能,那要怎么样设置呢?
大家就把这个问题当成主问题吧,有答案就结贴。哪个答对了就给100分~~~~~~
slimfeng 2008-08-27
  • 打赏
  • 举报
回复
一会就下班了,如果来不及就明天给你发
slimfeng 2008-08-27
  • 打赏
  • 举报
回复
楼主,我可以传给你个ftp传输的类试试,把你邮箱告诉我。
  • 打赏
  • 举报
回复
1.增加IIS超时时间
2.修改最大上传字节数限制m,.net默认为2M
修改web.Config

加上<httpRuntime
executionTimeout="90"
maxRequestLength="81920"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="8"
minLocalRequestFreeThreads="4"
appRequestQueueLimit="100" />
其中maxRequestLength="81920" 可修改大小

优途科技 2008-08-27
  • 打赏
  • 举报
回复
你可以参考下。
http://blog.csdn.net/gisfarmer/archive/2008/07/31/2745911.aspx
个人觉得所需要的功能都有了。基本。
cicade 2008-08-27
  • 打赏
  • 举报
回复
我也在用Ftp做档案存储(备份),但因为我传的文件比较小,没遇到楼主的问题
我想楼主可以考虑一下以下几种方案
1.将文档折成多份,做为多份小文档上传
2.用第三方类库试试
3.换方案,可以考虑 共享文件夹,数据库,Webservice
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 21 楼 freewind0521 的回复:]
在webconfig里设置 <httpRuntime maxRequestLength="307200" executionTimeout="600"/>试试
[/Quote]

额。。。。。。。。。老兄,我不是说我这个就是个winform程序嘛~~~~~
addisjeams 2008-08-27
  • 打赏
  • 举报
回复
管理系统是基于ftp21端口的?>如果是,我就闪人了,ftp我还没有开发过,我只做过http上传的工作
ftp我一般都是直接用第三方软件
freewind0521 2008-08-27
  • 打赏
  • 举报
回复
在webconfig里设置<httpRuntime maxRequestLength="307200" executionTimeout="600"/>试试
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 addisjeams 的回复:]
你是直接对iis中的普通web网站上传的吧
试试把webservice集成到你的iis中
[/Quote]

我这个根本就不涉及到web,只是在一个管理系统中,需要对资料的电子文档进行存储,所以用到了ftp服务器。
addisjeams 2008-08-27
  • 打赏
  • 举报
回复
你是直接对iis中的普通web网站上传的吧
试试把webservice集成到你的iis中
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 addisjeams 的回复:]
还要说一下,我做的测试,如果是网络情况特别好的话,用一般的基于web的控件是能上传大文件
问题是:中国的网络经常超时调包很严重,尤其是白天,我传文件到自己的服务器,基本上不超过10mb必断!有时候才几百k也断.
所以我说web是无法解决大文件的上行传输和续传问题.
[/Quote]


我的程序本来就算winform的,而且ftp服务器也是局域网中架设。所以不需要考虑文件大小的问题了
addisjeams 2008-08-27
  • 打赏
  • 举报
回复
还要说一下,我做的测试,如果是网络情况特别好的话,用一般的基于web的控件是能上传大文件
问题是:中国的网络经常超时调包很严重,尤其是白天,我传文件到自己的服务器,基本上不超过10mb必断!有时候才几百k也断.
所以我说web是无法解决大文件的上行传输和续传问题.
addisjeams 2008-08-27
  • 打赏
  • 举报
回复
上传大文件,用web网页是不行的
要么activeX,要么做win的程序进行上传大文件,这是我前几个月得出的结论,也许有高人能web上传大文件,就算我倒霉没遇到
我用的是webService加WSE加winform做出来的,来源一老外的代码
slin60 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 fly_to_the_winds 的回复:]
好像.net自带的控件只能上传不大于几m的文件吧,你光设了时间无限也…
[/Quote]


可以上传的,这个问题的根本不是文件大小的问题,而是传输时间的问题。我就算在上传一个较小的文件时,控制上传时间,只要时间到了90秒左右,它就指定会报错。程序是C/S结构的
浮生若梦丶 2008-08-27
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 slin60 的回复:]
FtpWebRequest和FtpWebResponse等


我计算了一下时间,每次报错的时间间隔大概为83秒-90秒左右。
这个时间使用秒表测算的,有点出入,估计标准时间应该是为90秒

我把FtpWebRequest.timeout设成了无限值了的,但是还是会报错。

大家帮我顶顶,这个问题200分中,100分是帮我顶的人,100分是给正真解决问题的人
[/Quote]

好像.net自带的控件只能上传不大于几m的文件吧,你光设了时间无限也没用啊;太大的东西就要做分段传输,这个我就不会了;要不就要去下个第三方控件来用...网上搜搜分段传输怎么处理,web.config 配置文件也要修改
加载更多回复(12)

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧