ftp服务器net
Ⅰ 一个做好的网站(用的是asp.net)怎么发布到ftp服务器上
主机厂家会提供给你ftp的ip和用户名,密码,你先网站发布一下,就是菜单里的那个发布,然后到你发布的那个目录,把文件传上去就可以了。要把bin目录和*.aspx web.config文件都传上去。
域名的设置,你先注册个域名,到当地的域名服务商哪儿,你要会自己设置,就自己设置,如果不会,就跟他们说,把我的域名指到你主机商给你的那个ip上就行了。
Ⅱ Internet信息服务—>>ftp服务器
从新安装IIS。
Ⅲ 怎样制作Ftp服务器
我就是看着这个拷贝过来的东西学习FTP服务器的
你得认真仔细看认真学 要做FPT不是很难的事情 但是也不是很简单的事情
FTP服务器的架设
在我们的实际网络生活中,特别是宽带网接入之后,FTP服务器作为文件的传输和共享工具得到广泛应用。FTP服务器在文件的传输上性能稳定,
占用系统资源小,而且传输速度快,现在网上已经有很多的FTP服务器可供使用,而自己架设一个FTP服务器也很容易,下面介绍两种主流的FTP架构方式。
1.利用微软公司的IIS
微软的IIS功能非常强大,它除了提供WWW服务之外,还提供FTP的服务,利用它一样很容易就能架设一个功能卓越的FTP服务器。
IIS的安装前面已经讲解过,下面我们一起来看看通过设置IIS来架设FTP服务器的几个步骤。
第一步:启动IIS,并启动IIS上的FTP服务。在默认的情况下,此时你的FTP服务器已经搭建好,并且可以立即登录,但是该FTP中没有任何文件。
第二步:鼠标右击IIS中的“默认FTP站点”项,选择“属性”菜单,即可出现如图19的对话框。
第三步:选择“主目录”的标签,在FTP站点目录的“本地路径”处填上你要设置的共享文件路径。默认情况下,此处的文件夹位置为“C:\Inetpub\Ftproot”,
你如果临时想改变共享目录,随时都可在此处修改(如图20),以后别人登录你的FTP服务器时显示的文件列表就是在这个目录中。
第三步:在“主目录”的标签处,你还可设置FTP服务器的文件访问权限,分别有读取、写入和日志访问,安全起见,这里的写入权限一般不选,
保证匿名用户不能随意对你文件进行操作。
第四步:设置登录的用户。如果你愿意提供“匿名”的访问权限,还需在“安全标签”处选择上“允许匿名连接”(如图21)。此外,
你还可从Windows系统帐号中选择FTP服务器的特殊帐号,当然也可以自己任意设置用户名和密码。
第五步:在“消息”标签处,有“欢迎”、“退出”和“最大连接数”3个输入框,分别代表别人在登录、退出时FTP服务器上给出的提示信息,
你可根据自己的需要设置。此外,最大连接数是设置同时连接本地FTP的最大主机台数(如图22)。
第六步:在“FTP站点”的标签处设置FTP标识,包括说明、IP地址和端口,这里一般不需要改动,按照默认选择即可(如图23)。
此外,在“C:\Winnt\System32\Logfiles”目录中你还可以看到连接上你FTP的IP、时间等日志信息。
此时,利用IE或者任何一款FTP的客户端软件即可登录你架设好的FTP站点。
2.利用Serv-U
在FTP服务器的搭建中,Serv-U是目前使用比较多的工具之一。它设置简单,功能强大,而且非常稳定,总体上来说上它比IIS附带的FTP服务器略胜一筹。
它适用于所有的Windows版本,是一款共享软件,可以让用户免费使用一个月。
第一步:Serv-U的下载和安装。
目前Serv-U的最高版本为4.0,文件大小为2.9MB,它的下载站点之一为“http://www.download.com.cn/show.phtml?action=detail&id=484”。
点击下载的可执行文件即可开始安装了,安装过程很简单,所有设置保持默认值就可以,按“Next”完成每一步(如图24)。
安装完毕,在Windows的桌面上就出现Serv-U的图标,双击Serv-U图标,出现Serv-U主窗口,点击主界面右边窗口的“Start server”即可启动FTP服务器 。
第二步:Serv-U的配置。
在Serv-U的安装完成之后即可出现配置向导,可以通过这个向导来对它进行配置,主要步骤如下。
A.安装程序首先启动一个设置向导帮助你设置FTP服务器,点击“Next”继续。
B.系统弹出输入IP的对话框,此项需要填入你准备为此FTP服务器绑定的IP地址。除非你的计算机有多个固定的IP地址,
并且你只想其中一个被FTP服务器所使用,否则,建议不管你是否有固定的IP地址,都将此项保留为空(即让系统自动侦测),点击“Next”(如图25)。
C.输入Domain name(域名)。此处填入你FTP服务器的域名。但域名由DNS解析而不是由这里决定,因此实际上你可以填入任意内容,
比如像“我的个人FTP服务器”这种对此FTP进行说明的文字。
D.输入FTP访问的端口号,一般保持默认的21即可。
E.匿名用户的创建和访问目录的设定。首先向导会提示你是否要创建匿名帐号,这里选择是,如果选择不,则用户需要用户名和密码才能访问FTP服务器。
接下来安装向导提示输入匿名用户的主目录(Anonymous home directory),此处按照需要来设定匿名用户访问硬盘的位置。
F.选择匿名用户是否将其限制在主目录里,如果选择是,则用户只能访问其主目录及以下的目录树;如果选择否,
则可以访问其主目录的同级或更高级的目录树。从安全角度考虑,一般建议选是。
G.创建新用户和访问目录。按照向导的提示一步一步创建新用户并输入密码(如图26),接着指定该用户可访问的目录和用户权限即可。
到这里,你的个人FTP就已经搭建完成了。不过这还只能实现Serv-U赋予的默认功能和权限,要真正让这个服务器能被你自己随心所欲地控制和管理,
则还需要经过以下后续的操作,这主要包括如下几点。
A.对FTP用户的管理
欲增加一个新用户(包括增加Anonymous用户),则在Serv-U的一个域中选中Users(用户),然后单击右键,进入New User(新用户),
依次根据提示为它设置好User Name(用户名)、Password(密码)、Home directory(主目录)等即可完成(如图27)。
欲删除一个用户,则在此用户上单击右键,选Delete User(删除用户)即可。
B.对目录权限的管理
在Serv-U左边框架中选中用户名,再在右边框架中进入Dir Access(目录存取)窗口,然后在列表中选中相应目录后,
就可在窗口的右侧更改当前用户对它的访问权限了(如图28)。
文件的属性主要包括:
Read(读):对文件进行读操作(复制、下载,不含查看)的权力。
Write(写):对文件进行写操作(上传)的权力。
Append(附加):对文件进行写操作和附加操作的权力。
Delete(删除):对文件进行删除(上传、更名、删除、移动)操作的权力。
Execute(执行):直接运行可执行文件的权力。
List(列表):对文件和目录的查看权力。
Create(建立):建立目录的权力。
Remove(移动):对目录进行移动、删除和更名的权力。
Inherit(继承):如勾选中此项,则以上设置的属性将对当前Path(目录)及其下的整个目录树起作用;否则就只对其当前目录有效。
C.其他设置
在Local server下的Setting处还可设置服务器的一些通用信息。
在“max no.of users”处,设定同时登录该服务器的最大用户数。
在Max.Speed处根据自己电脑的配置,设置用户最大下载速度。
选择“Block users who connect more than XX times within YY seconds for ZZ minutes”复选框并设置相应的数值,
可以防止有些恶意用户为达到攻击目的在短时间内对该服务器的频繁登录。
选择“Delete partially uploaded files”复选框,可以自动删除上传失败后留在服务器上不完整文件。如果不要选中这项,
就能让Serv-U支持断点上传功能(如图29)。
3.架设FTP服务器的其他方式。
A.WS_FTP Server。这是一套非常有特色的FTP Server程序。它有简单而强大的图形接口。设置起来比较容易,可以在Win9X/NT/2000/XP系统下使用,
是一个共享的英文软件,文件大小为3.3MB,下载站点之一:http://www.skycn.com/soft/1296.html。
B.FileZilla Server。作为一个小巧、可*的FTP服务器软件,它配置简单,功能比较强大,适合Windows系列中的所有版本,文件大小为637kB,
同时它是完全免费的软件,它的汉化版下载站点之一:http://www.skycn.com/soft/8091.html。
C.TYPSoft FTP Server汉化版。由于该软件经过汉化,因此使用起来很容易上手,是一个非常适合初学者的FTP服务器端软件,
它配置简单,也能方便地管理用户,软件大小只有480kB,是一款免费软件,它的下载站点之一:http://www.skycn.com/soft/8335.html。
WWW服务器和FTP的访问途径
WWW的访问都可使用IE或其他浏览器来实现,例如我们经常看到的Natscape和Opera等。由于它的访问很容易,这里就不再详细讨论。
FTP的访问一般有两种方式,介绍如下:
A.直接利用IE登录FTP。现在我们正在使用的IE也可作为登录FTP的工具了,跟浏览网页一样,只需要将地址前面的HTTP改为FTP即可,例如访问自己的FTP,
可以在浏览器中输入ftp://localhost(如图30),这时是匿名访问方式,如果用IE登录FTP时需用户名和密码,则可以右键调出登录的菜单(如图31),
在对话框中输入用户名和密码即可。IE登录FTP服务器之后,FTP服务器上的文件跟本机上的文件一样,可以对其进行复制和粘贴等操作。
B.利用专用的软件登录FTP。此类软件有很多,比较着名的有FlashFXP、CuteFTP、LeapFTP等。
个人觉得LeapFTP很不错,操作简单,占用资源也很小,它的用法分步介绍如下。
第一步:LeapFTP的下载与安装。
目前LeapFTP较新的版本为2.7.2,是一个共享软件,LeapFTP v2.7.2.592的汉化版可以去http://www.skycn.com/soft/711.html下载。它的安装非常简单,
直接一路点击“下一步”即可完成,安装完成只有几个配置文件和它自身一个独立的程序,基本上是一个绿色软件。
第二步:LeapFTP的使用。
A.打开LeapFTP,它的主界面如图32。
B.添加FTP站点。点击菜单上的“Sites”→“Site Manager”,(或直接按快捷键F4),弹出一个FTP站点的管理窗口。点击“Add site”新建一个站点,
在右边的对话框中逐一输入该站点的基本信息,例如服务器名称(可以任意填写,主要是为了管理的方便)、服务器地址、端口和用户名等(如图33),
要登录该FTP站,只需在左边的窗口中双击该名称即可。
C.取得FTP服务器上的文件列表并按照需要上传或下载。登录上FTP之后,即可在LeapFTP的右上窗口中看到FTP上的文件列表,如果需要下载,
将选中的文件拖入左边的本地硬盘中某个目录里(如图34)即可。同样,也可以用这种方法将硬盘中的文件上传到FTP服务器中去。
域名的申请和动态IP的解决措施
为了便于记忆,我们可以申请WWW服务器和FTP服务器地址的域名。
网易提供免费域名的申请,大家可以去http://my.yeah.net/apply-new.htm上免费获得(如图35),
例如申请http://202.117.51.43对应的域名http://forus.yeah.net,这样以后访问自己的WWW服务就再也不需记住那些毫无意义的数字符号了。
在浏览器中直接输入自己申请的域名即可。此外,雅克精彩(http://www.k666.com/k666/yu-ming/apply.php)和My001.net网(http://www.my001.net)
也都提供免费的WWW服务域名申请。
对FTP来说,域名的申请站点相对较少,这里推荐老牌的域名转向免费服务提www.dhs.org。打开该网站之后,点击Signup的连接,输入注册内容,
包括用户ID、用户姓名和用户的E-mail地址,通过该网站给你发送的E-mail地址来激活注册的帐号。然后即可按照该网站提供的密码登录了,
点击“Login”,输入帐号和密码之后即可增加域名的转向服务(如图36)。注册域名之后,以后如果想访问自己的FTP只需输入注册的域名,
例如输入ftp://forus.dhs.org代表本机上的FTP服务器。
Ⅳ asp.net网站传到FTP服务器后出问题了,急啊,大侠过来帮帮忙
本地测试正常说明问题不在你这,找空间商核对下.net 的版本,确定服务器这边用的.NET版本是2.0 (2.0 默认同时兼容2.0版本 和3.5版本)而不是1.0 。要找稳定诚信好的空间提供商,否则网站上线后还有一大堆问题会让你头痛死的。
Ⅳ 如何设置FTP服务器
FTP服务器的架设
在我们的实际网络生活中,特别是宽带网接入之后,FTP服务器作为文件的传输和共享工具得到广泛应用。FTP服务器在文件的传输上性能稳定,占用系统资源小,而且传输速度快,现在网上已经有很多的FTP服务器可供使用,而自己架设一个FTP服务器也很容易,下面介绍两种主流的FTP架构方式。
1.利用微软公司的IIS
微软的IIS功能非常强大,它除了提供WWW服务之外,还提供FTP的服务,利用它一样很容易就能架设一个功能卓越的FTP服务器。
IIS的安装前面已经讲解过,下面我们一起来看看通过设置IIS来架设FTP服务器的几个步骤。
第一步:启动IIS,并启动IIS上的FTP服务。在默认的情况下,此时你的FTP服务器已经搭建好,并且可以立即登录,但是该FTP中没有任何文件。
第二步:鼠标右击IIS中的“默认FTP站点”项,选择“属性”菜单,即可出现如图19的对话框。
第三步:选择“主目录”的标签,在FTP站点目录的“本地路径”处填上你要设置的共享文件路径。默认情况下,此处的文件夹位置为“C:\Inetpub\Ftproot”,你如果临时想改变共享目录,随时都可在此处修改(如图20),以后别人登录你的FTP服务器时显示的文件列表就是在这个目录中。
第三步:在“主目录”的标签处,你还可设置FTP服务器的文件访问权限,分别有读取、写入和日志访问,安全起见,这里的写入权限一般不选,保证匿名用户不能随意对你文件进行操作。
第四步:设置登录的用户。如果你愿意提供“匿名”的访问权限,还需在“安全标签”处选择上“允许匿名连接”(如图21)。此外,你还可从Windows系统帐号中选择FTP服务器的特殊帐号,当然也可以自己任意设置用户名和密码。
第五步:在“消息”标签处,有“欢迎”、“退出”和“最大连接数”3个输入框,分别代表别人在登录、退出时FTP服务器上给出的提示信息,你可根据自己的需要设置。此外,最大连接数是设置同时连接本地FTP的最大主机台数(如图22)。
第六步:在“FTP站点”的标签处设置FTP标识,包括说明、IP地址和端口,这里一般不需要改动,按照默认选择即可(如图23)。此外,在“C:\Winnt\System32\Logfiles”目录中你还可以看到连接上你FTP的IP、时间等日志信息。
此时,利用IE或者任何一款FTP的客户端软件即可登录你架设好的FTP站点。
2.利用Serv-U
在FTP服务器的搭建中,Serv-U是目前使用比较多的工具之一。它设置简单,功能强大,而且非常稳定,总体上来说上它比IIS附带的FTP服务器略胜一筹。它适用于所有的Windows版本,是一款共享软件,可以让用户免费使用一个月。
第一步:Serv-U的下载和安装。
目前Serv-U的最高版本为4.0,文件大小为2.9MB,它的下载站点之一为“http://www.download.com.cn/show.phtml?action=detail&id=484”。
点击下载的可执行文件即可开始安装了,安装过程很简单,所有设置保持默认值就可以,按“Next”完成每一步(如图24)。安装完毕,在Windows的桌面上就出现Serv-U的图标,双击Serv-U图标,出现Serv-U主窗口,点击主界面右边窗口的“Start server”即可启动FTP服务器 。
第二步:Serv-U的配置。
在Serv-U的安装完成之后即可出现配置向导,可以通过这个向导来对它进行配置,主要步骤如下。
A.安装程序首先启动一个设置向导帮助你设置FTP服务器,点击“Next”继续。
B.系统弹出输入IP的对话框,此项需要填入你准备为此FTP服务器绑定的IP地址。除非你的计算机有多个固定的IP地址,并且你只想其中一个被FTP服务器所使用,否则,建议不管你是否有固定的IP地址,都将此项保留为空(即让系统自动侦测),点击“Next”(如图25)。
C.输入Domain name(域名)。此处填入你FTP服务器的域名。但域名由DNS解析而不是由这里决定,因此实际上你可以填入任意内容,比如像“我的个人FTP服务器”这种对此FTP进行说明的文字。
D.输入FTP访问的端口号,一般保持默认的21即可。
E.匿名用户的创建和访问目录的设定。首先向导会提示你是否要创建匿名帐号,这里选择是,如果选择不,则用户需要用户名和密码才能访问FTP服务器。接下来安装向导提示输入匿名用户的主目录(Anonymous home directory),此处按照需要来设定匿名用户访问硬盘的位置。
F.选择匿名用户是否将其限制在主目录里,如果选择是,则用户只能访问其主目录及以下的目录树;如果选择否,则可以访问其主目录的同级或更高级的目录树。从安全角度考虑,一般建议选是。
G.创建新用户和访问目录。按照向导的提示一步一步创建新用户并输入密码(如图26),接着指定该用户可访问的目录和用户权限即可。
到这里,你的个人FTP就已经搭建完成了。不过这还只能实现Serv-U赋予的默认功能和权限,要真正让这个服务器能被你自己随心所欲地控制和管理,则还需要经过以下后续的操作,这主要包括如下几点。
A.对FTP用户的管理
欲增加一个新用户(包括增加Anonymous用户),则在Serv-U的一个域中选中Users(用户),然后单击右键,进入New User(新用户),依次根据提示为它设置好User Name(用户名)、Password(密码)、Home directory(主目录)等即可完成(如图27)。
欲删除一个用户,则在此用户上单击右键,选Delete User(删除用户)即可。
B.对目录权限的管理
在Serv-U左边框架中选中用户名,再在右边框架中进入Dir Access(目录存取)窗口,然后在列表中选中相应目录后,就可在窗口的右侧更改当前用户对它的访问权限了(如图28)。
文件的属性主要包括:
Read(读):对文件进行读操作(复制、下载,不含查看)的权力。
Write(写):对文件进行写操作(上传)的权力。
Append(附加):对文件进行写操作和附加操作的权力。
Delete(删除):对文件进行删除(上传、更名、删除、移动)操作的权力。
Execute(执行):直接运行可执行文件的权力。
List(列表):对文件和目录的查看权力。
Create(建立):建立目录的权力。
Remove(移动):对目录进行移动、删除和更名的权力。
Inherit(继承):如勾选中此项,则以上设置的属性将对当前Path(目录)及其下的整个目录树起作用;否则就只对其当前目录有效。
C.其他设置
在Local server下的Setting处还可设置服务器的一些通用信息。
在“max no.of users”处,设定同时登录该服务器的最大用户数。
在Max.Speed处根据自己电脑的配置,设置用户最大下载速度。
选择“Block users who connect more than XX times within YY seconds for ZZ minutes”复选框并设置相应的数值,可以防止有些恶意用户为达到攻击目的在短时间内对该服务器的频繁登录。
选择“Delete partially uploaded files”复选框,可以自动删除上传失败后留在服务器上不完整文件。如果不要选中这项,就能让Serv-U支持断点上传功能(如图29)。
3.架设FTP服务器的其他方式。
A.WS_FTP Server。这是一套非常有特色的FTP Server程序。它有简单而强大的图形接口。设置起来比较容易,可以在Win9X/NT/2000/XP系统下使用,是一个共享的英文软件,文件大小为3.3MB,下载站点之一:http://www.skycn.com/soft/1296.html。
B.FileZilla Server。作为一个小巧、可*的FTP服务器软件,它配置简单,功能比较强大,适合Windows系列中的所有版本,文件大小为637kB,同时它是完全免费的软件,它的汉化版下载站点之一:http://www.skycn.com/soft/8091.html。
C.TYPSoft FTP Server汉化版。由于该软件经过汉化,因此使用起来很容易上手,是一个非常适合初学者的FTP服务器端软件,它配置简单,也能方便地管理用户,软件大小只有480kB,是一款免费软件,它的下载站点之一:http://www.skycn.com/soft/8335.html。
WWW服务器和FTP的访问途径
WWW的访问都可使用IE或其他浏览器来实现,例如我们经常看到的Natscape和Opera等。由于它的访问很容易,这里就不再详细讨论。
FTP的访问一般有两种方式,介绍如下:
A.直接利用IE登录FTP。现在我们正在使用的IE也可作为登录FTP的工具了,跟浏览网页一样,只需要将地址前面的HTTP改为FTP即可,例如访问自己的FTP,可以在浏览器中输入ftp://localhost(如图30),这时是匿名访问方式,如果用IE登录FTP时需用户名和密码,则可以右键调出登录的菜单(如图31),在对话框中输入用户名和密码即可。IE登录FTP服务器之后,FTP服务器上的文件跟本机上的文件一样,可以对其进行复制和粘贴等操作。
B.利用专用的软件登录FTP。此类软件有很多,比较着名的有FlashFXP、CuteFTP、LeapFTP等。
个人觉得LeapFTP很不错,操作简单,占用资源也很小,它的用法分步介绍如下。
第一步:LeapFTP的下载与安装。
目前LeapFTP较新的版本为2.7.2,是一个共享软件,LeapFTP v2.7.2.592的汉化版可以去http://www.skycn.com/soft/711.html下载。它的安装非常简单,直接一路点击“下一步”即可完成,安装完成只有几个配置文件和它自身一个独立的程序,基本上是一个绿色软件。
第二步:LeapFTP的使用。
A.打开LeapFTP,它的主界面如图32。
B.添加FTP站点。点击菜单上的“Sites”→“Site Manager”,(或直接按快捷键F4),弹出一个FTP站点的管理窗口。点击“Add site”新建一个站点,在右边的对话框中逐一输入该站点的基本信息,例如服务器名称(可以任意填写,主要是为了管理的方便)、服务器地址、端口和用户名等(如图33),要登录该FTP站,只需在左边的窗口中双击该名称即可。
C.取得FTP服务器上的文件列表并按照需要上传或下载。登录上FTP之后,即可在LeapFTP的右上窗口中看到FTP上的文件列表,如果需要下载,将选中的文件拖入左边的本地硬盘中某个目录里(如图34)即可。同样,也可以用这种方法将硬盘中的文件上传到FTP服务器中去。
FTP服务器的架设
在我们的实际网络生活中,特别是宽带网接入之后,FTP服务器作为文件的传输和共享工具得到广泛应用。FTP服务器在文件的传输上性能稳定,占用系统资源小,而且传输速度快,现在网上已经有很多的FTP服务器可供使用,而自己架设一个FTP服务器也很容易,下面介绍两种主流的FTP架构方式。
1.利用微软公司的IIS
微软的IIS功能非常强大,它除了提供WWW服务之外,还提供FTP的服务,利用它一样很容易就能架设一个功能卓越的FTP服务器。
IIS的安装前面已经讲解过,下面我们一起来看看通过设置IIS来架设FTP服务器的几个步骤。
第一步:启动IIS,并启动IIS上的FTP服务。在默认的情况下,此时你的FTP服务器已经搭建好,并且可以立即登录,但是该FTP中没有任何文件。
第二步:鼠标右击IIS中的“默认FTP站点”项,选择“属性”菜单,即可出现如图19的对话框。
第三步:选择“主目录”的标签,在FTP站点目录的“本地路径”处填上你要设置的共享文件路径。默认情况下,此处的文件夹位置为“C:\Inetpub\Ftproot”,你如果临时想改变共享目录,随时都可在此处修改(如图20),以后别人登录你的FTP服务器时显示的文件列表就是在这个目录中。
第三步:在“主目录”的标签处,你还可设置FTP服务器的文件访问权限,分别有读取、写入和日志访问,安全起见,这里的写入权限一般不选,保证匿名用户不能随意对你文件进行操作。
第四步:设置登录的用户。如果你愿意提供“匿名”的访问权限,还需在“安全标签”处选择上“允许匿名连接”(如图21)。此外,你还可从Windows系统帐号中选择FTP服务器的特殊帐号,当然也可以自己任意设置用户名和密码。
第五步:在“消息”标签处,有“欢迎”、“退出”和“最大连接数”3个输入框,分别代表别人在登录、退出时FTP服务器上给出的提示信息,你可根据自己的需要设置。此外,最大连接数是设置同时连接本地FTP的最大主机台数(如图22)。
第六步:在“FTP站点”的标签处设置FTP标识,包括说明、IP地址和端口,这里一般不需要改动,按照默认选择即可(如图23)。此外,在“C:\Winnt\System32\Logfiles”目录中你还可以看到连接上你FTP的IP、时间等日志信息。
此时,利用IE或者任何一款FTP的客户端软件即可登录你架设好的FTP站点。
2.利用Serv-U
在FTP服务器的搭建中,Serv-U是目前使用比较多的工具之一。它设置简单,功能强大,而且非常稳定,总体上来说上它比IIS附带的FTP服务器略胜一筹。它适用于所有的Windows版本,是一款共享软件,可以让用户免费使用一个月。
第一步:Serv-U的下载和安装。
目前Serv-U的最高版本为4.0,文件大小为2.9MB,它的下载站点之一为“http://www.download.com.cn/show.phtml?action=detail&id=484”。
点击下载的可执行文件即可开始安装了,安装过程很简单,所有设置保持默认值就可以,按“Next”完成每一步(如图24)。安装完毕,在Windows的桌面上就出现Serv-U的图标,双击Serv-U图标,出现Serv-U主窗口,点击主界面右边窗口的“Start server”即可启动FTP服务器 。
第二步:Serv-U的配置。
在Serv-U的安装完成之后即可出现配置向导,可以通过这个向导来对它进行配置,主要步骤如下。
A.安装程序首先启动一个设置向导帮助你设置FTP服务器,点击“Next”继续。
B.系统弹出输入IP的对话框,此项需要填入你准备为此FTP服务器绑定的IP地址。除非你的计算机有多个固定的IP地址,并且你只想其中一个被FTP服务器所使用,否则,建议不管你是否有固定的IP地址,都将此项保留为空(即让系统自动侦测),点击“Next”(如图25)。
C.输入Domain name(域名)。此处填入你FTP服务器的域名。但域名由DNS解析而不是由这里决定,因此实际上你可以填入任意内容,比如像“我的个人FTP服务器”这种对此FTP进行说明的文字。
D.输入FTP访问的端口号,一般保持默认的21即可。
E.匿名用户的创建和访问目录的设定。首先向导会提示你是否要创建匿名帐号,这里选择是,如果选择不,则用户需要用户名和密码才能访问FTP服务器。接下来安装向导提示输入匿名用户的主目录(Anonymous home directory),此处按照需要来设定匿名用户访问硬盘的位置。
F.选择匿名用户是否将其限制在主目录里,如果选择是,则用户只能访问其主目录及以下的目录树;如果选择否,则可以访问其主目录的同级或更高级的目录树。从安全角度考虑,一般建议选是。
G.创建新用户和访问目录。按照向导的提示一步一步创建新用户并输入密码(如图26),接着指定该用户可访问的目录和用户权限即可。
到这里,你的个人FTP就已经搭建完成了。不过这还只能实现Serv-U赋予的默认功能和权限,要真正让这个服务器能被你自己随心所欲地控制和管理,则还需要经过以下后续的操作,这主要包括如下几点。
A.对FTP用户的管理
欲增加一个新用户(包括增加Anonymous用户),则在Serv-U的一个域中选中Users(用户),然后单击右键,进入New User(新用户),依次根据提示为它设置好User Name(用户名)、Password(密码)、Home directory(主目录)等即可完成(如图27)。
欲删除一个用户,则在此用户上单击右键,选Delete User(删除用户)即可。
B.对目录权限的管理
在Serv-U左边框架中选中用户名,再在右边框架中进入Dir Access(目录存取)窗口,然后在列表中选中相应目录后,就可在窗口的右侧更改当前用户对它的访问权限了(如图28)。
文件的属性主要包括:
Read(读):对文件进行读操作(复制、下载,不含查看)的权力。
Write(写):对文件进行写操作(上传)的权力。
Append(附加):对文件进行写操作和附加操作的权力。
Delete(删除):对文件进行删除(上传、更名、删除、移动)操作的权力。
Execute(执行):直接运行可执行文件的权力。
List(列表):对文件和目录的查看权力。
Create(建立):建立目录的权力。
Remove(移动):对目录进行移动、删除和更名的权力。
Inherit(继承):如勾选中此项,则以上设置的属性将对当前Path(目录)及其下的整个目录树起作用;否则就只对其当前目录有效。
C.其他设置
在Local server下的Setting处还可设置服务器的一些通用信息。
在“max no.of users”处,设定同时登录该服务器的最大用户数。
在Max.Speed处根据自己电脑的配置,设置用户最大下载速度。
选择“Block users who connect more than XX times within YY seconds for ZZ minutes”复选框并设置相应的数值,可以防止有些恶意用户为达到攻击目的在短时间内对该服务器的频繁登录。
选择“Delete partially uploaded files”复选框,可以自动删除上传失败后留在服务器上不完整文件。如果不要选中这项,就能让Serv-U支持断点上传功能(如图29)。
3.架设FTP服务器的其他方式。
A.WS_FTP Server。这是一套非常有特色的FTP Server程序。它有简单而强大的图形接口。设置起来比较容易,可以在Win9X/NT/2000/XP系统下使用,是一个共享的英文软件,文件大小为3.3MB,下载站点之一:http://www.skycn.com/soft/1296.html。
B.FileZilla Server。作为一个小巧、可*的FTP服务器软件,它配置简单,功能比较强大,适合Windows系列中的所有版本,文件大小为637kB,同时它是完全免费的软件,它的汉化版下载站点之一:http://www.skycn.com/soft/8091.html。
C.TYPSoft FTP Server汉化版。由于该软件经过汉化,因此使用起来很容易上手,是一个非常适合初学者的FTP服务器端软件,它配置简单,也能方便地管理用户,软件大小只有480kB,是一款免费软件,它的下载站点之一:http://www.skycn.com/soft/8335.html。
WWW服务器和FTP的访问途径
WWW的访问都可使用IE或其他浏览器来实现,例如我们经常看到的Natscape和Opera等。由于它的访问很容易,这里就不再详细讨论。
FTP的访问一般有两种方式,介绍如下:
A.直接利用IE登录FTP。现在我们正在使用的IE也可作为登录FTP的工具了,跟浏览网页一样,只需要将地址前面的HTTP改为FTP即可,例如访问自己的FTP,可以在浏览器中输入ftp://localhost(如图30),这时是匿名访问方式,如果用IE登录FTP时需用户名和密码,则可以右键调出登录的菜单(如图31),在对话框中输入用户名和密码即可。IE登录FTP服务器之后,FTP服务器上的文件跟本机上的文件一样,可以对其进行复制和粘贴等操作。
B.利用专用的软件登录FTP。此类软件有很多,比较着名的有FlashFXP、CuteFTP、LeapFTP等。
个人觉得LeapFTP很不错,操作简单,占用资源也很小,它的用法分步介绍如下。
第一步:LeapFTP的下载与安装。
目前LeapFTP较新的版本为2.7.2,是一个共享软件,LeapFTP v2.7.2.592的汉化版可以去http://www.skycn.com/soft/711.html下载。它的安装非常简单,直接一路点击“下一步”即可完成,安装完成只有几个配置文件和它自身一个独立的程序,基本上是一个绿色软件。
第二步:LeapFTP的使用。
A.打开LeapFTP,它的主界面如图32。
B.添加FTP站点。点击菜单上的“Sites”→“Site Manager”,(或直接按快捷键F4),弹出一个FTP站点的管理窗口。点击“Add site”新建一个站点,在右边的对话框中逐一输入该站点的基本信息,例如服务器名称(可以任意填写,主要是为了管理的方便)、服务器地址、端口和用户名等(如图33),要登录该FTP站,只需在左边的窗口中双击该名称即可。
C.取得FTP服务器上的文件列表并按照需要上传或下载。登录上FTP之后,即可在LeapFTP的右上窗口中看到FTP上的文件列表,如果需要下载,将选中的文件拖入左边的本地硬盘中某个目录里(如图34)即可。同样,也可以用这种方法将硬盘中的文件上传到FTP服务器中去。
域名的申请和动态IP的解决措施
为了便于记忆,我们可以申请WWW服务器和FTP服务器地址的域名。
网易提供免费域名的申请,大家可以去http://my.yeah.net/apply-new.htm上免费获得(如图35),例如申请http://202.117.51.43对应的域名http://forus.yeah.net,这样以后访问自己的WWW服务就再也不需记住那些毫无意义的数字符号了。在浏览器中直接输入自己申请的域名即可。此外,雅克精彩(http://www.k666.com/k666/yu-ming/apply.php)和My001.net网(http://www.my001.net)也都提供免费的WWW服务域名申请。
对FTP来说,域名的申请站点相对较少,这里推荐老牌的域名转向免费服
Ⅵ ftp服务器有哪些种类
(1)
www服务器(www
server)
www服务器也称为web服务器(web
server)或http服务器(http
server),它是internet上最常见也是使用最频繁的
服务器之一,www服务器能够为用户提供网页浏览、论坛访问等等服务。比如:我们在使用浏览器访问
http://www.discuz.net
的时候,实际上就是在访问discuz!的www服务器,从该www服务器获取需要的论坛资料和网页。
(2)
ftp服务器(ftp
server)
ftp服务器是专门为用户提供各种文件(file)的服务器,ftp服务器上往往存储大量的文件,例如:软件、mp3、电影、
程序等等。用户只要使用ftp客户端软件登录到ftp服务器上就可以从ftp服务器下载所需文件和资源到自己的电脑上,同时,
你也可以把自己电话上的文件上传到ftp上供其他用户下载,以实现文件资源的共享。
(3)
邮件服务器(mail
server)
e-mail是internet上应用最频繁的服务之一,而internet上每天数亿百亿计的电子邮件的收发都是通过邮件服务器实
现的。邮件服务器就像邮局一样,可以为用户提供电子邮件的接收存储和发送服务。
除了以上介绍的3种主要服务器之外,还有很多其他类型的网络服务器,例如:数据库服务器(database
server)、代
理服务器(proxy
server)、域名服务器(domain
name
server)等等
Ⅶ 登录ftp时出现错误118(net::ERR_CONNECTION_TIMED_OUT):未知错误。
连接超时。不是你的网络慢,就是FTP服务器那边出了问题。
这个一般没什么解决方法的。换个FTP登录工具试试?如FlashFXP。
如果是你网速的问题,就去网速好一点的地方登录FTP服务器吧。比如网吧
如果是FTP服务器的问题,就要叫服务器那边的工作人员去检查一下了。
Ⅷ ASP.net 实现打开服务器FTP文件夹
给你一个访问ftp类。传入用户密码等,直接调用里面方法就可以了。能实现文件下载等
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.IO;
namespace JySoft.SaleFrame.Facade
{
/// <summary>
/// FTP 的摘要说明。
/// </summary>
public class FTPServer
{
private string strRemoteHost;
private int strRemotePort;
private string strRemotePath;
private string strRemoteUser;
private string strRemotePass;
private Boolean bConnected;
#region 内部变量
/// <summary>
/// 服务器返回的应答信息(包含应答码)
/// </summary>
private string strMsg;
/// <summary>
/// 服务器返回的应答信息(包含应答码)
/// </summary>
private string strReply;
/// <summary>
/// 服务器返回的应答码
/// </summary>
private int iReplyCode;
/// <summary>
/// 进行控制连接的socket
/// </summary>
private Socket socketControl;
/// <summary>
/// 传输模式
/// </summary>
private TransferType trType;
/// <summary>
/// 传输模式:二进制类型、ASCII类型
/// </summary>
public enum TransferType
{
/// <summary>
/// Binary
/// </summary>
Binary,
/// <summary>
/// ASCII
/// </summary>
ASCII
};
/// <summary>
/// 接收和发送数据的缓冲区
/// </summary>
private static int BLOCK_SIZE = 512;
Byte[] buffer = new Byte[ BLOCK_SIZE];
/// <summary>
/// 编码方式
/// </summary>
Encoding ASCII = Encoding.Default;
#endregion
#region 内部函数
#region 构造函数
/// <summary>
/// 缺省构造函数
/// </summary>
public FTPServer()
{
strRemoteHost = "";
strRemotePath = "";
strRemoteUser = "";
strRemotePass = "";
strRemotePort = 21;
bConnected = false;
}
/// <summary>
/// 构造函数
/// </summary>
/// <param name="remoteHost"></param>
/// <param name="remotePath"></param>
/// <param name="remoteUser"></param>
/// <param name="remotePass"></param>
/// <param name="remotePort"></param>
public FTPServer( string remoteHost, string remotePath, string remoteUser, string remotePass, int remotePort )
{
strRemoteHost = remoteHost;
strRemotePath = remotePath;
strRemoteUser = remoteUser;
strRemotePass = remotePass;
strRemotePort = remotePort;
Connect();
}
#endregion
#region 登陆
/// <summary>
/// FTP服务器IP地址
/// </summary>
public string RemoteHost
{
get
{
return strRemoteHost;
}
set
{
strRemoteHost = value;
}
}
/// <summary>
/// FTP服务器端口
/// </summary>
public int RemotePort
{
get
{
return strRemotePort;
}
set
{
strRemotePort = value;
}
}
/// <summary>
/// 当前服务器目录
/// </summary>
public string RemotePath
{
get
{
return strRemotePath;
}
set
{
strRemotePath = value;
}
}
/// <summary>
/// 登录用户账号
/// </summary>
public string RemoteUser
{
set
{
strRemoteUser = value;
}
}
/// <summary>
/// 用户登录密码
/// </summary>
public string RemotePass
{
set
{
strRemotePass = value;
}
}
/// <summary>
/// 是否登录
/// </summary>
public bool Connected
{
get
{
return bConnected;
}
}
#endregion
#region 链接
/// <summary>
/// 建立连接
/// </summary>
public void Connect()
{
socketControl = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ep = new IPEndPoint(IPAddress.Parse(RemoteHost), strRemotePort);
// 链接
try
{
socketControl.Connect(ep);
}
catch(Exception)
{
throw new IOException("连接不上FTP服务器!");
}
// 获取应答码
ReadReply();
if(iReplyCode != 220)
{
DisConnect();
throw new IOException(strReply.Substring(4));
}
try
{
// 登陆
SendCommand("USER "+strRemoteUser);
if( !(iReplyCode == 331 || iReplyCode == 230) )
{
CloseSocketConnect();//关闭连接
throw new IOException(strReply.Substring(4));
}
if( iReplyCode != 230 )
{
SendCommand("PASS "+strRemotePass);
if( !(iReplyCode == 230 || iReplyCode == 202) )
{
CloseSocketConnect();//关闭连接
throw new IOException(strReply.Substring(4));
}
}
}
catch
{
throw new IOException("登录用户名密码错误!");
}
bConnected = true;
// 切换到目录
ChDir(strRemotePath);
}
/// <summary>
/// 关闭连接
/// </summary>
public void DisConnect()
{
if( socketControl != null )
{
SendCommand("QUIT");
}
CloseSocketConnect();
}
#endregion
#region 传输模式
/// <summary>
/// 设置传输模式
/// </summary>
/// <param name="ttType">传输模式</param>
public void SetTransferType(TransferType ttType)
{
if(ttType == TransferType.Binary)
{
SendCommand("TYPE I");//binary类型传输
}
else
{
SendCommand("TYPE A");//ASCII类型传输
}
if (iReplyCode != 200)
{
throw new IOException(strReply.Substring(4));
}
else
{
trType = ttType;
}
}
/// <summary>
/// 获得传输模式
/// </summary>
/// <returns>传输模式</returns>
public TransferType GetTransferType()
{
return trType;
}
#endregion
#region 文件操作
/// <summary>
/// 获得文件列表
/// </summary>
/// <param name="strMask">文件名的匹配字符串</param>
/// <returns></returns>
public string[] Dir(string strMask)
{
// 建立链接
if(!bConnected)
{
Connect();
}
//建立进行数据连接的socket
Socket socketData = CreateDataSocket();
//传送命令
SendCommand("NLST " + strMask);
//分析应答代码
if(!(iReplyCode == 150 || iReplyCode == 125 || iReplyCode == 226))
{
return null;
}
//获得结果
strMsg = "";
while(true)
{
int iBytes = socketData.Receive(buffer, buffer.Length, 0);
strMsg += ASCII.GetString(buffer, 0, iBytes);
if(iBytes < buffer.Length)
{
break;
}
}
char[] seperator = {'\n'};
string[] strsFileList = strMsg.Split(seperator);
socketData.Close();//数据socket关闭时也会有返回码
if(iReplyCode != 226)
{
ReadReply();
if(iReplyCode != 226)
{
throw new IOException(strReply.Substring(4));
}
}
return strsFileList;
}
/// <summary>
/// 获取文件大小
/// </summary>
/// <param name="strFileName">文件名</param>
/// <returns>文件大小</returns>
private long GetFileSize(string strFileName)
{
if(!bConnected)
{
Connect();
}
SendCommand("SIZE " + Path.GetFileName(strFileName));
long lSize=0;
if(iReplyCode == 213)
{
lSize = Int64.Parse(strReply.Substring(4));
}
else
{
throw new IOException(strReply.Substring(4));
}
return lSize;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="strFileName">待删除文件名</param>
public void Delete(string strFileName)
{
if(!bConnected)
{
Connect();
}
SendCommand("DELE "+strFileName);
if(iReplyCode != 250)
{
throw new IOException(strReply.Substring(4));
}
}
/// <summary>
/// 重命名(如果新文件名与已有文件重名,将覆盖已有文件)
/// </summary>
/// <param name="strOldFileName">旧文件名</param>
/// <param name="strNewFileName">新文件名</param>
public void Rename(string strOldFileName,string strNewFileName)
{
if(!bConnected)
{
Connect();
}
SendCommand("RNFR "+strOldFileName);
if(iReplyCode != 350)
{
throw new IOException(strReply.Substring(4));
}
// 如果新文件名与原有文件重名,将覆盖原有文件
SendCommand("RNTO "+strNewFileName);
if(iReplyCode != 250)
{
throw new IOException(strReply.Substring(4));
}
}
#endregion
#region 上传和下载
/// <summary>
/// 下载一批文件
/// </summary>
/// <param name="strFileNameMask">文件名的匹配字符串</param>
/// <param name="strFolder">本地目录(不得以\结束)</param>
public void Get(string strFileNameMask,string strFolder)
{
if(!bConnected)
{
Connect();
}
string[] strFiles = Dir(strFileNameMask);
foreach(string strFile in strFiles)
{
if(!strFile.Equals(""))//一般来说strFiles的最后一个元素可能是空字符串
{
Get(strFile,strFolder,strFile);
}
}
}
/// <summary>
/// 下载一个文件
/// </summary>
/// <param name="strRemoteFileName">要下载的文件名</param>
/// <param name="strFolder">本地目录(不得以\结束)</param>
/// <param name="strLocalFileName">保存在本地时的文件名</param>
public void Get(string strRemoteFileName,string strFolder,string strLocalFileName)
{
if(!bConnected)
{
Connect();
}
SetTransferType(TransferType.Binary);
if (strLocalFileName.Equals(""))
{
strLocalFileName = strRemoteFileName;
}
if(!File.Exists(strLocalFileName))
{
Stream st = File.Create(strLocalFileName);
st.Close();
}
FileStream output = new
FileStream(strFolder + "\\" + strLocalFileName,FileMode.Create);
Socket socketData = CreateDataSocket();
SendCommand("RETR " + strRemoteFileName);
if(!(iReplyCode == 150 || iReplyCode == 125
|| iReplyCode == 226 || iReplyCode == 250))
{
throw new IOException(strReply.Substring(4));
}
while(true)
{
int iBytes = socketData.Receive(buffer, buffer.Length, 0);
output.Write(buffer,0,iBytes);
if(iBytes <= 0)
{
break;
}
}
output.Close();
if (socketData.Connected)
{
socketData.Close();
}
if(!(iReplyCode == 226 || iReplyCode == 250))
{
ReadReply();
if(!(iReplyCode == 226 || iReplyCode == 250))
{
throw new IOException(strReply.Substring(4));
}
}
}
/// <summary>
/// 上传一批文件
/// </summary>
/// <param name="strFolder">本地目录(不得以\结束)</param>
/// <param name="strFileNameMask">文件名匹配字符(可以包含*和?)</param>
public void Put(string strFolder,string strFileNameMask)
{
string[] strFiles = Directory.GetFiles(strFolder,strFileNameMask);
foreach(string strFile in strFiles)
{
//strFile是完整的文件名(包含路径)
Put(strFile);
}
}
/// <summary>
/// 上传一个文件
/// </summary>
/// <param name="strFileName">本地文件名</param>
public void Put(string strFileName)
{
if(!bConnected)
{
Connect();
}
Socket socketData = CreateDataSocket();
SendCommand("STOR "+Path.GetFileName(strFileName));
if( !(iReplyCode == 125 || iReplyCode == 150) )
{
throw new IOException(strReply.Substring(4));
}
FileStream input = new
FileStream(strFileName,FileMode.Open);
int iBytes = 0;
while ((iBytes = input.Read(buffer,0,buffer.Length)) > 0)
{
socketData.Send(buffer, iBytes, 0);
}
input.Close();
if (socketData.Connected)
{
socketData.Close();
}
if(!(iReplyCode == 226 || iReplyCode == 250))
{
ReadReply();
if(!(iReplyCode == 226 || iReplyCode == 250))
{
throw new IOException(strReply.Substring(4));
}
}
}
#endregion
#region 目录操作
/// <summary>
/// 创建目录
/// </summary>
/// <param name="strDirName">目录名</param>
public void MkDir(string strDirName)
{
if(!bConnected)
{
Connect();
}
SendCommand("MKD "+strDirName);
if(iReplyCode != 257)
{
throw new IOException(strReply.Substring(4));
}
}
/// <summary>
/// 删除目录
/// </summary>
/// <param name="strDirName">目录名</param>
public void RmDir(string strDirName)
{
if(!bConnected)
{
Connect();
}
SendCommand("RMD "+strDirName);
if(iReplyCode != 250)
{
throw new IOException(strReply.Substring(4));
}
}
/// <summary>
/// 改变目录
/// </summary>
/// <param name="strDirName">新的工作目录名</param>
public void ChDir(string strDirName)
{
if(strDirName.Equals(".") || strDirName.Equals(""))
{
return;
}
if(!bConnected)
{
Connect();
}
SendCommand("CWD "+strDirName);
if(iReplyCode != 250)
{
throw new IOException(strReply.Substring(4));
}
this.strRemotePath = strDirName;
}
#endregion
/// <summary>
/// 将一行应答字符串记录在strReply和strMsg
/// 应答码记录在iReplyCode
/// </summary>
private void ReadReply()
{
strMsg = "";
strReply = ReadLine();
iReplyCode = Int32.Parse(strReply.Substring(0,3));
}
/// <summary>
/// 建立进行数据连接的socket
/// </summary>
/// <returns>数据连接socket</returns>
private Socket CreateDataSocket()
{
SendCommand("PASV");
if(iReplyCode != 227)
{
throw new IOException(strReply.Substring(4));
}
int index1 = strReply.IndexOf('(');
int index2 = strReply.IndexOf(')');
string ipData =
strReply.Substring(index1+1,index2-index1-1);
int[] parts = new int[6];
int len = ipData.Length;
int partCount = 0;
string buf="";
for (int i = 0; i < len && partCount <= 6; i++)
{
char ch = Char.Parse(ipData.Substring(i,1));
if (Char.IsDigit(ch))
buf+=ch;
else if (ch != ',')
{
throw new IOException("Malformed PASV strReply: " +
strReply);
}
if (ch == ',' || i+1 == len)
{
try
{
parts[partCount++] = Int32.Parse(buf);
buf="";
}
catch (Exception)
{
throw new IOException("Malformed PASV strReply: " +
strReply);
}
}
}
string ipAddress = parts[0] + "."+ parts[1]+ "." +
parts[2] + "." + parts[3];
int port = (parts[4] << 8) + parts[5];
Socket s = new
Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);
IPEndPoint ep = new
IPEndPoint(IPAddress.Parse(ipAddress), port);
try
{
s.Connect(ep);
}
catch(Exception)
{
throw new IOException("Can't connect to remote server");
}
return s;
}
/// <summary>
/// 关闭socket连接(用于登录以前)
/// </summary>
private void CloseSocketConnect()
{
if(socketControl!=null)
{
socketControl.Close();
socketControl = null;
}
bConnected = false;
}
/// <summary>
/// 读取Socket返回的所有字符串
/// </summary>
/// <returns>包含应答码的字符串行</returns>
private string ReadLine()
{
while(true)
{
int iBytes = socketControl.Receive(buffer, buffer.Length, 0);
strMsg += ASCII.GetString(buffer, 0, iBytes);
if(iBytes < buffer.Length)
{
break;
}
}
char[] seperator = {'\n'};
string[] mess = strMsg.Split(seperator);
if(strMsg.Length > 2)
{
strMsg = mess[mess.Length-2];
//seperator[0]是10,换行符是由13和0组成的,分隔后10后面虽没有字符串,
//但也会分配为空字符串给后面(也是最后一个)字符串数组,
//所以最后一个mess是没用的空字符串
//但为什么不直接取mess[0],因为只有最后一行字符串应答码与信息之间有空格
}
else
{
strMsg = mess[0];
}
if(!strMsg.Substring(3,1).Equals(" "))//返回字符串正确的是以应答码(如220开头,后面接一空格,再接问候字符串)
{
return ReadLine();
}
return strMsg;
}
/// <summary>
/// 发送命令并获取应答码和最后一行应答字符串
/// </summary>
/// <param name="strCommand">命令</param>
private void SendCommand(string strCommand)
{
Byte[] cmdBytes = ASCII.GetBytes((strCommand + "\r\n").ToCharArray());
socketControl.Send(cmdBytes, cmdBytes.Length, 0);
ReadReply();
}
#endregion
}
}
Ⅸ 登录ftp时出现 错误 118 (net::ERR_CONNECTION_TIMED_OUT): 未知错误。
要用比较新的版本的FTP。
不仅要把自己装的防火墙调低或关掉还要尤其是xp系统带的防火墙关掉。
FTP设置时,请勿选择在PASV模式下上传,否则将出现登录FTP后,无法列表等异常情况。相同的软件,版本不同,设置方法也略有不同,因此需要根据实际情况进行设置。
FlashFxp中文版:选项--参数选择--代理/防火墙/标识--将“使用被动模式”前复选框中的勾去掉。
Cute FTP英文版:FTP—Settings—Options—Firewall,将“PASV mode”前复选框中的打勾去掉。
Cute FTP3.5中文版:FTP—设置—选项—防火墙,“PASV方式(A)”前复选框中的打勾去掉。
Leap FTP2.7.2:Sites—Site Manager—Advanced,将“Use PASV mode”前复选框中的打勾去掉。用户在FTP的时候要选用PORT模式。
建议大家使用不同版本的FTP软件登陆FTP服务器。
建议升级病毒库,并查杀病毒。
在"参数选择"中高级选项一栏,在"列表方式"中选择"显示隐藏文件"。
在"参数选择"中选择代理一栏,在"使用被动模式"一栏前打钩即可。
系统自身问题。
删除那个站点,再重新创建一个新的站点。这个可能是软件本身的问题,用久了有时就会出现这样的问题。
Ⅹ c#.net ftp链接
using System.Net;
private void btnOpen_Click(object sender, EventArgs e)
{
Cursor currentCursor = this.Cursor;
FtpWebResponse response = null;
Stream stream = null;
try
{
this.Cursor = Cursors.WaitCursor;
// Create the FtpWebRequest object.
//第一步,生成FtpWebRequest对象
Uri baseUri = new Uri(txtServer.Text);//txtServer输入形如ftp://server的字符串
FtpWebRequest request =(FtpWebRequest)WebRequest.Create(baseUri);
//第二步,设置访问服务器的用户名和密码
request.Credentials = new NetworkCredential(txtUsername.Text,
txtPassword.Text);//访问Ftp服务器的用户名和密码
//第三步,设置访问服务器的方法
request.Method = WebRequestMethods.Ftp.ListDirectory; //访问ftp服务器的方法,
// Send the request to the server.
//第四步,将request发送到服务器
//将请求发送到ftp服务器
response = (FtpWebResponse)request.GetResponse();
//第五步,获取服务器的response
// Read the response and fill the list box.
stream = response.GetResponseStream();
//第六步,对从服务器获取的stream进行处理
Encoding encode = System.Text.Encoding.GetEncoding("gb2312");
FillDirectoryList(stream,encode);
serverDirectory = null;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error FTP Client",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//第七步,将使用的response,stream等对象关闭
finally
{
if (response != null)
response.Close();
if (stream != null)
stream.Close();
this.Cursor = currentCursor;
}
}
///对从服务器获取的stream进行处理
private void FillDirectoryList(Stream stream,Encoding encode)
{
StreamReader reader = new StreamReader(stream,encode);
string content = reader.ReadToEnd();
string[] files = content.Split('\n');
lstFiles.DataSource = files;
reader.Close();
}
//从ftp服务器下载文件
private void btnGetFile_Click(object sender, EventArgs e)
{
FtpWebResponse response = null;
Stream inStream = null;
Stream outStream = null;
try
{
Uri baseUri = new Uri(txtServer.Text);
string filename = lstFiles.SelectedValue.ToString().Trim();
string fullFilename = serverDirectory + @"/" + filename;
Uri uri = new Uri(baseUri, fullFilename);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uri);
request.Credentials = new NetworkCredential(txtUsername.Text,
txtPassword.Text);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.UseBinary = checkBoxBinary.Checked;
response = (FtpWebResponse)request.GetResponse();
inStream = response.GetResponseStream();
saveFileDialog.FileName = filename;
if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
outStream = File.OpenWrite(saveFileDialog.FileName);
byte[] buffer = new byte[4096];
int size = 0;
while ((size = inStream.Read(buffer, 0, 4096)) > 0)
{
outStream.Write(buffer, 0, size);
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Error FTP Client",
MessageBoxButtons.OK, MessageBoxIcon.Error);
}
finally
{
if (inStream != null)
inStream.Close();
if (outStream != null)
outStream.Close();
if (response != null)
response.Close();
}
}