我正在尝试使用以下代码创建一个虚拟目录:
ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite", "http", "*:8080:", @"D:mineTestAppsTestAppXML");
iisManager.CommitChanges();
当通过Console应用程序使用时,此代码运行良好。但是,当我通过Web应用程序使用相同的代码时,它并没有完成所需的工作。它也没有给出任何错误。有人知道为什么相同的代码不能用于Web应用程序吗?
我不知道你是不是在抓取网站id。
这样做的方法是操作Site.Applications
集合,它是站点中所有应用程序的扁平树。
如果你想创建一个虚拟目录,试试这个:
//Get site information
Site site = srvam.Sites.First(s => s.Id == 3);
if (!SiteExists(srvman, siteId))
throw new ApplicationException();
Application iisManager = site.Applications.First(a => a.Path == "/");
iisManager.VirtualDirectories.Add("/vdir_1", @"D:MySiteother_content");
srvam.CommitChanges();
如果你想创建一个虚拟应用程序,请使用以下代码:
//Get site information
Site site = srvman.Sites.First(s => s.Id == 3);
if (!SiteExists(srvman, siteId))
throw new ApplicationException();
Application app =
site.Applications.Add("/app_2", @"d:mysiteother_content");
app.ApplicationPoolName = "MySite";
srvman.CommitChanges();
这里有一篇很棒的文章