现在的位置: 首页 > 综合 > 正文

C#创建虚拟目录

2013年09月20日 ⁄ 综合 ⁄ 共 2591字 ⁄ 字号 评论关闭
_iisServer = new DirectoryEntry("IIS://LocalHost/W3SVC/1");
DirectoryEntry folderRoot = _iisServer.Children.Find("Root","IIsWebVirtualDir");
DirectoryEntry newVirDir = folderRoot.Children.Add(nameDirectory,VirDirSchemaName);
 newVirDir.CommitChanges();
 // Set Properties
 newVirDir.Properties["AccessRead"].Add(true);
 //newVirDir.Properties["Path"].add(realPath);
 newVirDir.Properties["Path"].Value = realPath;
 // Create a Application;Don't use invoke method
 //newVirDir.Invoke("AppCreate",true);
 // Save Changes
 newVirDir.CommitChanges();
 folderRoot.CommitChanges();
 _iisServer.CommitChanges();
 newVirDir.Invoke("AppCreate",true);
这种主法有点奇怪,先找到"1"站点,然后查找"ROOT"根目录,才add.
另外也要注意的是那个newVirDir.Invoke("AppCreate",true);
我放到了最后面.有点关系.而在add后面也要加个save.
 
Create a Web Site in IIS Using C#Ever wondered how to interface with IIS using .NET? If all your apps/clients are running IIS 6.0, it is drop dead easy, just enable the XML metabase and parse it to your heart's content. However, if you need to support older clients, you will probably end up using DirectoryServices. However, since DirectoryServices is fairly generic, you might have difficulty figuring out what exactly you need to do. In case you get stuck, here is a little reference block of code that will create a new web site with the supplied name and root directory:
public class SetupUtility
{
public SetupUtility()
{
}
public int CreateWebSite(string webSiteName, string pathToRoot)
{
return CreateWebSite(webSiteName, pathToRoot, false);
}
public int CreateWebSite(string webSiteName, string pathToRoot, bool createDir)
{
DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC");
// Find unused ID value for new web site
int siteID = 1;
foreach(DirectoryEntry e in root.Children)
{
if(e.SchemaClassName == "IIsWebServer")
{
int ID = Convert.ToInt32(e.Name);
if(ID >= siteID)
{
siteID = ID+1;
}
}
}
// Create web site
DirectoryEntry site = (DirectoryEntry)root.Invoke("Create", "IIsWebServer", siteID);
site.Invoke("Put", "ServerComment", webSiteName);
site.Invoke("Put", "KeyType", "IIsWebServer");
site.Invoke("Put", "ServerBindings", ":80:");
site.Invoke("Put", "ServerState", 2);
site.Invoke("Put", "FrontPageWeb", 1);
site.Invoke("Put", "DefaultDoc", "Default.aspx");
site.Invoke("Put", "SecureBindings", ":443:");
site.Invoke("Put", "ServerAutoStart", 1);
site.Invoke("Put", "ServerSize", 1);
site.Invoke("SetInfo");
// Create application virtual directory
DirectoryEntry siteVDir = site.Children.Add("Root", "IISWebVirtualDir");
siteVDir.Properties["AppIsolated"][0] = 2;
siteVDir.Properties["Path"][0] = pathToRoot;
siteVDir.Properties["AccessFlags"][0] = 513;
siteVDir.Properties["FrontPageWeb"][0] = 1;
siteVDir.Properties["AppRoot"][0] = "LM/W3SVC/"+siteID+"/Root";
siteVDir.Properties["AppFriendlyName"][0] = "Root";
siteVDir.CommitChanges();
site.CommitChanges();
return siteID;
}
}

抱歉!评论已关闭.