有口碑的常州网站优化,wordpress分类目录 404,手机网站制作工具,购物网站成功案例什么是FTPFTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议#xff0c;使得主机间可以共享文件.可以将 Internet 信息服务 (IIS) 配置为作为 FTP 服务器来运行。 这样#xff0c;其他计算机便可以连接到服务器并将文件复制到服务器或者从服务器复制文件。… 什么是FTPFTP(File Transfer Protocol)是TCP/IP网络上两台计算机传送文件的协议使得主机间可以共享文件.可以将 Internet 信息服务 (IIS) 配置为作为 FTP 服务器来运行。 这样其他计算机便可以连接到服务器并将文件复制到服务器或者从服务器复制文件。 例如如果您在自己的计算机上承载网站并且希望允许远程用户连接到您的计算机并将他们的文件复制到服务器则可以将 IIS 配置为充当 FTP 服务器。主要实现方式下面主要讲解一下在Window的IIS中创建FTP的Site。1、创建站点 public int createFtpSite(string ftpname,string path){int errorCode ErrorCode.Succeed;if (ftpname path ){try{ServerManager iisManager new ServerManager();Configuration cfg iisManager.GetApplicationHostConfiguration();/*---- 停止21端口 ----*/try{/*---- sites ----*/foreach (var ftpsite in iisManager.Sites){/** 站点描述*/string sitename ftpsite.Name;/** 站点绑定域名和端口*/foreach (Binding binding in ftpsite.Bindings){try{string currentServerBindings binding.GetAttributeValue(BindingInformation).ToString();string port currentServerBindings.Split(:.ToArray())[1];if (port 21){try{//stop siteftpsite.Stop();}catch{//doing nothing}break;}}catch{//doing nothing}}}//提交更改iisManager.CommitChanges();}catch{//do nothing}/** 创建FTP*/if (!System.IO.Directory.Exists(System.Configuration.ConfigurationManager.AppSettings.Get(defaultftpath)))//创建站点路径{System.IO.Directory.CreateDirectory(System.Configuration.ConfigurationManager.AppSettings.Get(defaultftpath));}Site site iisManager.Sites.Add(System.Configuration.ConfigurationManager.AppSettings.Get(defaultftp), ftp, string.Format(*:{0}:, 21), System.Configuration.ConfigurationManager.AppSettings.Get(defaultftpath));iisManager.CommitChanges();//设置FTP SSL权限SetFtpSSL();//设置FTP Everyone权限IISUtil.IISCore.AddSiteUtil addsiteUtil new AddSiteUtil();try{string config_rootpath System.Configuration.ConfigurationManager.AppSettings.Get(defaultftpath);//string rootpath 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));/*---- hide ----*/System.IO.File.SetAttributes(config_rootpath, System.IO.FileAttributes.Hidden);}catch{}}catch{errorCode ErrorCode.ftpSiteFail;}}else{if (!getFtpState(ftpname))//判断ftp用户是否存在{/*---- FTP状态检查 ----*/FtpStateInit();try{using (ServerManager iisManager new ServerManager()){Site site iisManager.Sites.FirstOrDefault(o ((string)o[name]).Contains(System.Configuration.ConfigurationManager.AppSettings.Get(defaultftp)));var vird 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;}}return errorCode;}
2、站点列表/// summary/// iis6获取所有ftp站点信息/// /summary/// param namenewsitename/param/// returns/returnspublic static Liststring iGetFtpInfos(){Liststring ftpinfos new Liststring();try{string ftproot System.Configuration.ConfigurationManager.AppSettings.Get(defaultftp);string ftpname ;//用户名string ftppass ;//密码string ftppath ;//物理路径string iisversion ;//iis版本string majorversion IISCore.IISInfoUtil.SGetIISMajorVersion();if (majorversion ){iisversion 未知;}else{iisversion majorversion.ToString();}/** 创建FTP 子站点*/var siteEntry new DirectoryEntry(IIS://localhost/MSFTPSVC);//IIS6管理对象DirectoryEntry rootentry new DirectoryEntry(IIS://localhost/W3SVC);//创建IIS管理对象foreach (DirectoryEntry sitechild in siteEntry.Children){if (!sitechild.SchemaClassName.EqualsEx(IIsFtpServer)) //IIsFtpServer代表FTPcontinue;string yftpname sitechild.Properties[ServerComment].Value.ToString();string defaultftpname System.Configuration.ConfigurationManager.AppSettings.Get(defaultftp);if (yftpname defaultftpname){try{//获取站点信息var root sitechild.Children.Find(ROOT, IIsFtpVirtualDir);DirectoryEntries ftps root.Children;foreach (DirectoryEntry ftp in ftps){ftpname ftp.Name;/** 获取密码*/try{/** 循环站点获取站点信息*/foreach (DirectoryEntry child in rootentry.Children){if (child.SchemaClassName IIsWebServer child.Properties[ServerComment].Value.ToString() ftpname){ftppass child.Properties[AnonymousUserPass].Value.ToString();/** 获取站点目录*/foreach (DirectoryEntry rootChild in child.Children){string name rootChild.Name.ToString();if ((rootChild.SchemaClassName IIsWebVirtualDir) (rootChild.Name.ToString().ToLower() root)){if (rootChild.Properties[Path].Value null){ftppath ;}else{ftppath rootChild.Properties[Path].Value.ToString().Substring(0, rootChild.Properties[Path].Value.ToString().LastIndexOf(\\));}}}}}}catch{}/** 获取路径*/if(ftpname ! )ftpinfos.Add(ftproot -- ftpname -- ftppass -- ftppath -- iisversion);//添加到站点信息}}catch{}}}}catch{}return ftpinfos;//返回数据}
3、删除站点 public static bool DeleteQFtp(string ftpname){bool flag false;try{/** 删除FTP 子站点*/var siteEntry new DirectoryEntry(IIS://localhost/MSFTPSVC);//IIS6管理对象if (ftpname ! ){foreach (DirectoryEntry sitechild in siteEntry.Children){if (!sitechild.SchemaClassName.EqualsEx(IIsFtpServer)) //IIsFtpServer代表FTPcontinue;string yftpname sitechild.Properties[ServerComment].Value.ToString();if (yftpname.ToLower() System.Configuration.ConfigurationManager.AppSettings.Get(defaultftp).ToLower()){try{DirectoryEntry root sitechild.Children.Find(ROOT, IIsFtpVirtualDir);var ftpchild root.Children.Find(ftpname, IIsFtpVirtualDir);if (ftpchild ! null){//删除root.Children.Remove(ftpchild);root.CommitChanges();sitechild.CommitChanges();siteEntry.CommitChanges();flag true;}}catch{flag false;}}}}}catch{}return flag;}