我继承了创建使用类似于以下(收拾为了简洁)如何设置
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 7.0下几个应用程序的一些代码在IIS应用程序的特定用户现在我需要指定应用程序在特定帐户下运行。我可以在“连接为...”对话框中的IIS中手动更改此项,并指定所需的域用户名和密码。
不幸的是,我不能为我的生活制定出如何在代码中设置它。 我已经尝试以各种方式设置用户名属性,但调用(“AppCreate”)调用总是会引发一些依赖于我所尝试的类型的异常。以下都失败了:
newVirDir.Username = "MYDOMAIN\\MyUser";
newVirDir.Properties["Username"][0] = "MYDOMAIN\\MyUser";
newVirDir.Properties["Username"].Insert(0, "MYDOMAIN\\MyUser");
它一定很容易 - 只要我知道该怎么做!
由于提前, 克里斯
谢谢 - 已经有一个应用程序池,我已经根据需要设置了凭据,但是应用程序本身仍然被设置为“应用程序用户(传递身份验证)”,它不起作用。我发现,除非我明确地在应用程序本身上设置凭据,否则它似乎使用'NT AUTHORITY \ ANONYMOUS LOGON'作为用户。在IIS中设置应用程序本身的凭据可以确保一切正常,但我无法解决如何以编程方式执行此操作。 – 2012-03-08 08:44:32