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

來源:互聯網
上載者:User
application|web|解決|問題 (一)說明
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();
}

}
}




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

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

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