最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例

 更新時間:2021年03月15日 08:32:52   作者:conan  
這篇文章主要介紹了c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下

什么是FTP

FTP(File Transfer Protocol)是TCP/IP網(wǎng)絡(luò)上兩臺計算機傳送文件的協(xié)議,使得主機間可以共享文件.可以將 Internet 信息服務(wù) (IIS) 配置為作為 FTP 服務(wù)器來運行。 這樣,其他計算機便可以連接到服務(wù)器并將文件復(fù)制到服務(wù)器或者從服務(wù)器復(fù)制文件。 例如,如果您在自己的計算機上承載網(wǎng)站,并且希望允許遠(yuǎn)程用戶連接到您的計算機并將他們的文件復(fù)制到服務(wù)器,則可以將 IIS 配置為充當(dāng) FTP 服務(wù)器。

主要實現(xiàn)方式

下面主要講解一下,在Window的IIS中創(chuàng)建FTP的Site。

1、創(chuàng)建站點

 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 site
                      ftpsite.Stop();
                    }
                    catch
                    {
                      //doing nothing
                    }
                    break;
                  }
                }
                catch
                {
                  //doing nothing
                }
              }
            }
            //提交更改
            iisManager.CommitChanges();
          }
          catch
          {
            //do nothing
          }
          /*
           * 創(chuàng)建FTP
          */
          if (!System.IO.Directory.Exists(System.Configuration.ConfigurationManager.AppSettings.Get("defaultftpath")))//創(chuàng)建站點路徑
          {
            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();
          //設(shè)置FTP SSL權(quán)限
          SetFtpSSL();
          //設(shè)置FTP Everyone權(quán)限
          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狀態(tài)檢查 ----*/
          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訪問權(quán)限
              SetFtpAccess(ftpname);
            }
          }
          catch
          {
            errorCode = ErrorCode.ftpSiteFail;
          }
        }
        else
        {
          errorCode = ErrorCode.ftpExists;
        }

      }
      return errorCode;
    }

2、站點列表

/// <summary>
    /// iis6獲取所有ftp站點信息
    /// </summary>
    /// <param name="newsitename"></param>
    /// <returns></returns>
    public static List<string> iGetFtpInfos()
    {
      List<string> ftpinfos = new List<string>();
      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();
        }
        /*
         * 創(chuàng)建FTP 子站點
         */
        var siteEntry = new DirectoryEntry("IIS://localhost/MSFTPSVC");//IIS6管理對象
        DirectoryEntry rootentry = new DirectoryEntry("IIS://localhost/W3SVC");//創(chuàng)建IIS管理對象
        foreach (DirectoryEntry sitechild in siteEntry.Children)
        {
          if (!sitechild.SchemaClassName.EqualsEx("IIsFtpServer"))  //IIsFtpServer代表FTP
            continue;
          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
                {
                  /*
                  * 循環(huán)站點獲取站點信息
                  */
                  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;//返回數(shù)據(jù)
    }

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代表FTP
              continue;
            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;
    }

以上就是c# 在windows中操作IIS設(shè)置FTP服務(wù)器的示例的詳細(xì)內(nèi)容,更多關(guān)于c# 設(shè)置FTP服務(wù)器的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • C#與Java的MD5簡單驗證(實例代碼)

    C#與Java的MD5簡單驗證(實例代碼)

    下面小編就為大家?guī)硪黄狢#與Java的MD5簡單驗證(實例代碼)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-09-09
  • WPF實現(xiàn)繪制折線圖的示例代碼

    WPF實現(xiàn)繪制折線圖的示例代碼

    這篇文章主要為大家詳細(xì)介紹了如何使用WPF實現(xiàn)繪制簡單的折線圖,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • C#中的并發(fā)編程與.NET任務(wù)并行庫的使用示例和常見問題

    C#中的并發(fā)編程與.NET任務(wù)并行庫的使用示例和常見問題

    在現(xiàn)代軟件開發(fā)中,.NET Framework通過引入任務(wù)并行庫(TPL)和并發(fā)集合類型,簡化了并發(fā)復(fù)雜性,提高程序的性能、可維護(hù)性和可擴(kuò)展性,并發(fā)集合設(shè)計上允許多線程安全訪問,此外,TPL通過Task類簡化異步操作,正確使用這些工具可避免死鎖和競爭條件等常見問題
    2024-09-09
  • C#遍歷List并刪除某個元素的方法

    C#遍歷List并刪除某個元素的方法

    這篇文章主要介紹了C#遍歷List并刪除某個元素的方法,實例分析了正序與倒序遍歷list及刪除元素的使用技巧,需要的朋友可以參考下
    2015-02-02
  • 不安裝excel使用c#創(chuàng)建excel文件

    不安裝excel使用c#創(chuàng)建excel文件

    這篇文章主要介紹了使用c#創(chuàng)建excel的示例,剛時給出了不安裝excel也可創(chuàng)建excel的方法,需要的朋友可以參考下
    2014-02-02
  • C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟

    C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟

    這篇文章主要介紹了C# 獲取硬盤號,CPU信息,加密解密技術(shù)的步驟,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2021-01-01
  • c#版json數(shù)據(jù)解析示例分享

    c#版json數(shù)據(jù)解析示例分享

    JSON(全稱為JavaScript Object Notation) 是一種輕量級的數(shù)據(jù)交換格式。它是基于JavaScript語法標(biāo)準(zhǔn)的一個子集。 JSON采用完全獨立于語言的文本格式,可以很容易在各種網(wǎng)絡(luò)、平臺和程序之間傳輸。JSON的語法很簡單,易于人閱讀和編寫,同時也易于機器解析和生成
    2014-03-03
  • 改進(jìn)c# 代碼的五個技巧(一)

    改進(jìn)c# 代碼的五個技巧(一)

    這篇文章主要介紹了改進(jìn)c# 代碼的五個技巧(一),幫助大家更好的理解和使用c#,感興趣的朋友可以了解下
    2021-01-01
  • c# 實現(xiàn)打印機狀態(tài)查詢與阻塞打印

    c# 實現(xiàn)打印機狀態(tài)查詢與阻塞打印

    這篇文章主要介紹了c# 引用System.Management來實現(xiàn)對打印機狀態(tài)的查詢,幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-05-05
  • 淺析C# 結(jié)構(gòu)體struct

    淺析C# 結(jié)構(gòu)體struct

    這篇文章主要介紹了C# 結(jié)構(gòu)體struct 的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)c#,感興趣的朋友可以了解下
    2020-08-08

最新評論

仪征市| 汕尾市| 襄垣县| 新邵县| 饶阳县| 平顺县| 克什克腾旗| 长沙市| 枣阳市| 崇明县| 霍林郭勒市| 丰顺县| 夏津县| 德州市| 奇台县| 华宁县| 静安区| 元阳县| 阜阳市| 尖扎县| 永顺县| 彰化县| 钟山县| 藁城市| 新宁县| 克拉玛依市| 云浮市| 荃湾区| 汉寿县| 江孜县| 抚宁县| 武强县| 石城县| 阳新县| 县级市| 涞源县| 长兴县| 吴川市| 班戈县| 黔江区| 汉寿县|