读书人

怎么在当前站点下创建虚拟目录

发布时间: 2012-01-03 22:16:06 作者: rapoo

如何在当前站点下创建虚拟目录
问题:
服务器上有10个站点,当我进入任何一个站点的后台时,要求能够自动创建虚拟目录功能,但系统总是默认加到默认站点下,怎样做才能创建到当前站点下呢?我以前的办法是:列出该服务器下的所有站点,增加时可选择,这样是可以的,但是,编辑时,怎样才能让dropdownlist 自动选中当前站点呢?而且当我删除一项对应记录时,要删除除所创建的虚拟目录?

问题关键点:怎样获取当前站点的serverID呢?

下面是以前的列表代码:
string strWeb = "IIS://localhost/W3SVC ";
string strSchema = "IIsWebServer ";

DirectoryEntry root = new DirectoryEntry(strWeb);

foreach (DirectoryEntry oEntry in root.Children)
{
if (oEntry.SchemaClassName == strSchema)
{
//得到站点显示的名字
this.SiteList.Items.Add(new ListItem(oEntry.Properties[ "ServerComment "][0].ToString(), oEntry.Name));
this.SiteList.SelectedIndex = 0;
}
}

是孟老大帮写的

梦老大要是在,帮忙啊,各位高手们,也帮帮吧。。

[解决办法]
通过找站点的物理路径和当前站点的比较即可
[解决办法]

[解决办法]
读取
oEntry.Properties[ "Path "][0]
[解决办法]
/**//// <summary>
/// 获取虚拟目录的物理路径
/// </summary>
/// <param name= "identifier "> 虚拟目录所属网站的标识符 </param>
/// <param name= "name "> 虚拟目录名称 </param>
/// <returns> </returns>
private string GetWebVirtualDirectoryPath(string identifier, string name)
{
//System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(@ "IIS://LocalHost/W3SVC/1/ROOT/EasyIRM3 ");
System.DirectoryServices.DirectoryEntry de = new System.DirectoryServices.DirectoryEntry(@ "IIS://LOCALHOST/W3SVC/1/ROOT/ " + name);
//string path = de.Path.ToString();

string path = (string)de.Properties[ "Path "].Value;

return path;
}

/**//// <summary>
/// 获取网站的标识符
/// </summary>
/// <param name= "portNumber "> 端口号 </param>
/// <returns> </returns>
private string GetWebSiteIdentifier(string portNumber)
{
DirectoryEntry root = new DirectoryEntry( "IIS://LOCALHOST/W3SVC ");
foreach(DirectoryEntry e in root.Children)


{
if(e.SchemaClassName == "IIsWebServer ")
{
foreach(object property in e.Properties[ "ServerBindings "])
{
if(property.Equals( ": " + portNumber + ": "))
{
return e.Name;
}
}
}
}

// 默认为“默认网站”的标识符
return "1 ";
}

读书人网 >asp.net

热点推荐