解决.NET(WebApplication)安装部署的不能选择安装路径的问题 - 中国WEB开发者网络 (http://www.webasp.net) -- 技术教程 (http://www.webasp.net/article/) --- 解决.NET(WebApplication)安装部署的不能选择安装路径的问题 (http://www.webasp.net/article/10/9077.htm) |
| -- 作者:未知 -- 发布日期: 2004-05-12 |
| (一)说明
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(); } } } |
| webasp.net |