本文转载自微信公众号《后端Q》,作者柯南。转载请联系后台Q公众号。什么是FTPFTP(FileTransferProtocol)是一种在TCP/IP网络上的两台计算机之间传输文件的协议,使文件可以在主机之间共享。Internet信息服务(IIS)可以配置为作为FTP服务器运行。这允许其他计算机连接到服务器并将文件复制到服务器或从服务器复制文件。例如,如果您在自己的计算机上托管一个网站并希望允许远程用户连接到您的计算机并将他们的文件复制到服务器,您可以将IIS配置为充当FTP服务器。下面主要讲解主要实现方法,在Window的IIS中创建一个FTP站点。1.创建站点publicintcreateFtpSite(stringftpname,stringpath){terrorCode=ErrorCode.Succeed;if(ftpname==""&&path=""){try{ServerManageriisManager=newServerManager();Configurationcfg=iisManager.GetApplicationHostConfiguration();/*----停止端口21----*/try{/*----sites----*/foreach(varftpsiteiniisManager.Sites){/**站点描述*/stringsitename=ftpsite.Name;/**站点绑定域名和端口*/foreach(Bindingbindinginftpsite.Bindings){try{stringcurrentServerBindings=binding.GetAttributeValue("BindingInformation").ToString();stringport=currentServerBindings.Split(":".ToArray())[1];if(port=="21"){try{//stopsiteftpsite.Stop();}catch{//doingnothing}break;}}catch{//doingnothing}}}//提交更改iisManager.CommitChanges();}catch{//donothing}/**创建FTP*/if(!System.IO.Directory.Exists(System.Configuration.ConfigurationManager.AppSettings.Get("defaultftpath")))//创建站点路径{System.IO.Directory.CreateDirectory(System.Configuration.ConfigurationManager。AppSettings.Get("defaultftpath"));}Sitesite=iisManager.Sites.Add(System.Configuration.ConfigurationManager.AppSettings.Get("defaultftp"),"ftp",string.Format("*:{0}:""21"),System.Configuration.ConfigurationManager.AppSettings.Get("defaultftpath"));iisManager.CommitChanges();//设置FTPSSL权限SetFtpSSL();//设置FTPEveryone权限IISUtil.IISCore.AddSiteUtiladdsiteUtil=newAddSiteUtil();try{stringconfig_rootpath=System.Configuration.ConfigurationManager.AppSettings.Get("defaultftpath");//stringrootpath=path.Substring(0,path.IndexOf(ftpname)-1)+"\\ftproot";if(!System.IO.Directory.Exists(config_rootpath)){System.IO.Directory.CreateDirectory(config_rootpath);}addsiteUtil.icaclsSet("Everyone",System.Configuration.ConfigurationManager.AppSettings.Get("defaultftpath"));/*----隐藏----*/System.IO.File.SetAttributes(config_rootpath,System.IO.FileAttributes.Hidden);}catch{}}catch{errorCode=ErrorCode.ftpSiteFail;}}else{if(!getFtpState(ftpname))//判断ftp用户是否存在{/*----FTP状态检查----*/FtpStateInit();try{使用(ServerManageriisManager=newServerManager()){Sitesite=iisManager.Sites.FirstOrDefault(o=>((string)o["name"]).Contains(System.Configuration.ConfigurationManager.AppSettings.Get("defaultftp")));varvird=site.Applications[0].VirtualDirectories["/"+ftpname];if(vird==null){site.Applications[0].VirtualDirectories.Add("/"+ftpname,path);}else{errorCode=ErrorCode.ftpExists;}iisManager.CommitChanges();//添加FTP访问权限SetFtpAccess(ftpname);}}catch{errorCode=ErrorCode.ftpSiteFail;}}else{errorCode=ErrorCode.ftpExists;}}returnerrorCode;}2、站点列表///
