我繼承了創建使用類似於以下(收拾爲了簡潔)如何設置
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