(一)说明
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
{
///
1<summary>
2/// Class1 的摘要说明。
3/// </summary>
class Start
{
///
1<summary>
2/// 应用程序的主入口点。
3/// 参数 args :
4/// args[0] :虚拟路径
5/// args[1] :物理路径
6/// args[2] :服务器名,可以不输入,默认 localhost
7///
8/// 运行示例:
9/// CreateWebDir.exe VirDirTest D:\work
10/// CreateWebDir.exe VirDirTest D:\work deve-server
11/// </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
1<args.length;i++) (args.length="" ;="" if="" myini.iniwritevalue("webdir","arg"+i.tostring(),args[i]);="" sserver="localhost" string="" {="" }=""> 2) sServer= args[2];
2
3IISManager iisMg = new IISManager(sServer);
4iisMg.Connect();
5
6if (iisMg.Exists(args[0]))
7{
8Console.Write(args[0]+ " is exist!");
9myINI.IniWriteValue("WebDir","WebDirExist","true");
10}
11else
12{
13myINI.IniWriteValue("WebDir","WebDirExist","false");
14
15iisMg.get_AnonymousUser();
16string[] anonymousUser = new string[2];
17anonymousUser[0] = iisMg.AnonymousUserName ;
18anonymousUser[1] = iisMg.AnonymousUserPass ;
19
20VirtualDirectory newVirDir = new VirtualDirectory(args[0],args[1],anonymousUser);
21if (iisMg.Create(newVirDir))
22{
23Console.Write(args[0]+ " 创建成功!");
24myINI.IniWriteValue("WebDir","WebDirCreated","true");
25}
26else
27{
28Console.Write(args[0]+ " 创建不成功!");
29myINI.IniWriteValue("WebDir","WebDirCreated","false");
30}
31}
32
33iisMg.Close();
34}
35
36}
37}</args.length;i++)>