解決.NET(WebApplication)安裝部署的不能選擇安裝路徑的問題

來源:互聯網
上載者:User

(一)說明
   WebApplication安裝部署時,不能選擇安裝路徑;解決思路:
   (1)建立一個控制台應用程式CreateWebDir.exe ,作用是建立 Web 虛擬目錄。
   (2)安裝部署製作採用windows Application安裝部署,不是WebApplication安裝
   部署。因為windows Application安裝部署有選擇路徑的操作,選擇的路徑
   儲存在 [TARGETDIR]。
   (3)在安裝部署製作—“自訂動作”中[提交]下添加自訂動作,選擇CreateWebDir.exe,其屬性:
   (A)Arguments = Bug2000 [TARGETDIR] ,即CreateWebDir.exe傳入兩個
   參數。Bug2000指Web 虛擬目錄;[TARGETDIR]指物理目錄。
   (B)InstallerClass = false,設定為非ProjectInstaller類
  (二)建立一個控制台應用程式CreateWebDir.exe
   (1) main.cs
   (2)CreateWebDir.cs 見《IIS控制管理--Web虛擬目錄的建立及管理》
   (3)INIFile.cs 見《INI檔案的操作(ASP.NET+C#)》
  (三)main.cs 檔案
  using System;
  using System.IO;
  using System.DirectoryServices;
  using System.Runtime.InteropServices;
  namespace CreateWebDir
  {
  /// <summary>
  /// Class1 的摘要說明。
  /// </summary>
  class Start
  {
   /// <summary>
   /// 應用程式的主進入點。
   /// 參數 args :
   /// args[0] :虛擬路徑
   /// args[1] :實體路徑
   /// args[2] :伺服器名,可以不輸入,預設 localhost
   ///
   /// 運行樣本:
   /// CreateWebDir.exe VirDirTest D:\work
   /// CreateWebDir.exe VirDirTest D:\work deve-server
   /// </summary>
   [STAThread]
   static void Main(string[] args)
   {
   int i;
   string iniFile;
   if (args.Length > 1)
   {
   iniFile = args[1];
   if (iniFile.Substring(iniFile.Length-1,1)=="\\")
   iniFile = args[1]+"Bug2004.ini";
   else
   iniFile = args[1]+"\\Bug2004.ini";
   }
   else
   iniFile = @"C:\Bug2004.ini";
   //string iniFile = @"D:\Bug2000.ini";
   if (!File.Exists(iniFile))
   {
   using (FileStream fs = File.Create(iniFile))
   {
   fs.Close();
   }
   }
   INIFile myINI = new INIFile(iniFile);
   for(i=0;i<args.Length;i++)
   {
   myINI.IniWriteValue("WebDir","arg"+i.ToString(),args[i]);
   }
  
   string sServer = "localhost";
   if (args.Length > 2) sServer= args[2];
   IISManager iisMg = new IISManager(sServer);
   iisMg.Connect();
  
   if (iisMg.Exists(args[0]))
   {
   Console.Write(args[0]+ " is exist!");
   myINI.IniWriteValue("WebDir","WebDirExist","true");
   }
   else
   {
   myINI.IniWriteValue("WebDir","WebDirExist","false");
   iisMg.get_AnonymousUser();
   string[] anonymousUser = new string[2];
   anonymousUser[0] = iisMg.AnonymousUserName ;
   anonymousUser[1] = iisMg.AnonymousUserPass ;
   VirtualDirectory newVirDir = new VirtualDirectory(args[0],args[1],anonymousUser);
   if (iisMg.Create(newVirDir))
   {
   Console.Write(args[0]+ " 建立成功!");
   myINI.IniWriteValue("WebDir","WebDirCreated","true");
   }
   else
   {
   Console.Write(args[0]+ " 建立不成功!");
   myINI.IniWriteValue("WebDir","WebDirCreated","false");
   }
   }
   iisMg.Close();
   }
  }
  }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.