【发布时间】:2012-03-07 16:49:32
【问题描述】:
我继承了一些在 IIS 7.0 下使用类似于以下代码创建几个应用程序的代码(为简洁起见整理)
DirectoryEntry iisServer = new DirectoryEntry("IIS://localhost/W3SVC/1");
DirectoryEntry folderRoot = iisServer.Children.Find("Root", "IIsWebVirtualDir");
DirectoryEntry newVirDir = folderRoot.Children.Add("MyNewVirtualDir", "IIsWebVirtualDir");
newVirDir.Properties["AccessRead"][0] = true;
newVirDir.Properties["AccessScript"][0] = true;
newVirDir.Properties["Path"].Insert(0, "C:\\MyVirtualDirStuff");
newVirDir.Properties["AccessExecute"][0] = true;
newVirDir.Properties["AppIsolated"].Value = 2; //"Medium (Pooled)"
newVirDir.Properties["DefaultDoc"][0] = "index.htm";
newVirDir.Invoke("AppCreate", true);
newVirDir.CommitChanges();
folderRoot.CommitChanges();
iisServer.CommitChanges();
这一切正常,但现在我需要指定应用程序在特定帐户下运行。我可以在 IIS 中的 Connect As... 对话框中手动更改它,并指定所需的域用户名和密码。
不幸的是,我终其一生都无法弄清楚如何在代码中进行设置。 我尝试以各种方式设置 Username 属性,但 Invoke("AppCreate") 调用总是抛出某种类型的异常,具体取决于我尝试过的内容。以下都失败了:
newVirDir.Username = "MYDOMAIN\\MyUser";
newVirDir.Properties["Username"][0] = "MYDOMAIN\\MyUser";
newVirDir.Properties["Username"].Insert(0, "MYDOMAIN\\MyUser");
这一定很容易——要是我知道怎么做就好了!
提前致谢, 克里斯
【问题讨论】:
标签: c# .net iis virtual-directory