在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
第一步先讲虚拟目录的配置,虚拟目录的配置简单来说就是创建虚拟目录。用手工的方式实现非常简单,直接设定“Web sharing”就可以了,让我们看看怎么通过编程的方式实现,本文将介绍两种创建虚拟目录的方法:
通过调用iisvdir.vbs创建虚拟目录
.
cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /create [virtualRoot] Alias PhysicalPath
1cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /delete [virtualRoot]/Alias
1cscript c:\windows\system32\iisvdir.vbs [/s server] [/u username /p password] /query virtualRoot
1 /// <summary>
2 /// 创建iis虚拟目录 3 /// </summary> 4 /// <exception cref="CreateIIsDirectory.DirectoryException">虚拟目录操作异常</exception> 5 public override void CreateDirectory() 6 { 7 // 已不覆盖的方式创建虚拟目录,当虚拟目录存在时抛出异常 8 this.CreateDirectory(false); 9 } 10 11 /// <summary> 12 /// 创建iis虚拟目录 13 /// </summary> 14 /// <param name="bReplace">是否覆盖掉原有的虚拟目录</param> 15 /// <exception cref="CreateIIsDirectory.DirectoryException">虚拟目录操作异常</exception> 16 public override void CreateDirectory(bool bReplace) 17 { 18 // 判断目录是否存在 19 if (this.Exist()) 20 { 21 if (bReplace) 22 { 23 // 若允许覆盖则先删除原有的虚拟目录 24 this.DeleteDirectory(); 25 } 26 else 27 { 28 // 若不允许覆盖直接抛出目录已存在的异常 29 DirectoryException.Throw("directory already exist"); 30 } 31 } 32 33 ReturnMessage message = ScriptDirectory.ExecuteScript( 34 this, ScriptDirectory.CONST_ACTION_CREATE); 35 36 // 输出message信息供nunit查看 37 Console.WriteLine("return code: " + message.Code); 38 Console.WriteLine("return message: \n" + message.Message); 39 40 // 若创建失败抛出虚拟目录操作异常 41 if (message.Code != 0) 42 { 43 DirectoryException.Throw(message.Message); 44 } 45 }
1 /// <summary>
2 /// 删除iis虚拟目录 3 /// </summary> 4 /// <exception cref="CreateIIsDirectory.DirectoryException">虚拟目录操作异常</exception> 5 public override void DeleteDirectory() 6 { 7 ReturnMessage message = ScriptDirectory.ExecuteScript( 8 this, ScriptDirectory.CONST_ACTION_DELETE); 9 10 // 输出message信息供nunit查看 11 Console.WriteLine("return code: " + message.Code); 12 Console.WriteLine("return message: \n" + message.Message); 13 14 // 若删除失败抛出虚拟目录操作异常 15 if (message.Code != 0) 16 { 17 DirectoryException.Throw(message.Message); 18 } 19 }
3) 判断虚拟目录是否存在:
1 /// <summary>
2 /// 判断iis虚拟目录是否存在 3 /// </summary> 4 /// <returns>目录是否存在</returns> 5 public override bool Exist() 6 { 7 ReturnMessage message = ScriptDirectory.ExecuteScript( 8 this, ScriptDirectory.CONST_ACTION_QUERY); 9 bool bExist = false; 10 11 // 输出message信息供nunit查看 12 Console.WriteLine("return code: " + message.Code); 13 Console.WriteLine("return message: \n" + message.Message); 14 15 // 从返回字符串中判断该虚拟目录是否存在 16 if (message.Code == 0) 17 { 18 Regex reg = new Regex("/" + this.m_strAlias + @"\s+"); 19 message.Message = message.Message.Substring( 20 message.Message.IndexOf("/")); 21 22 bExist = reg.IsMatch(message.Message); 23 } 24 25 return bExist; 26 }
|
请发表评论