我正在進行Web服務安裝。 我需要做的一件事是在默認網站下創建一個新的虛擬目錄。 問題是我需要爲該虛擬目錄設置一個不同的應用程序池(請不要問爲什麼......這些是要求,我無能爲力)。從代碼創建IIS應用程序
在IIS6中,因爲虛擬目錄和應用程序沒有區別,所以我沒有問題。 在IIS7中,不能將應用程序池設置爲虛擬目錄,因此我需要創建一個新的「應用程序」並將應用程序池附加到該應用程序池。
我在C#中找不到任何合理的示例/教程。我需要一些幫助:-)
謝謝。
我正在進行Web服務安裝。 我需要做的一件事是在默認網站下創建一個新的虛擬目錄。 問題是我需要爲該虛擬目錄設置一個不同的應用程序池(請不要問爲什麼......這些是要求,我無能爲力)。從代碼創建IIS應用程序
在IIS6中,因爲虛擬目錄和應用程序沒有區別,所以我沒有問題。 在IIS7中,不能將應用程序池設置爲虛擬目錄,因此我需要創建一個新的「應用程序」並將應用程序池附加到該應用程序池。
我在C#中找不到任何合理的示例/教程。我需要一些幫助:-)
謝謝。
找到答案的地方在那裏。 我使用相同的代碼創建在IIS6虛擬目錄和IIS7應用:
DirectoryEntry defaultWebSite = GetWebSiteEntry(DEFAULT_WEB_SITE_NAME);
DirectoryEntry defaultWebSiteRoot = new DirectoryEntry(defaultWebSite.Path + "/Root");
//Create and setup new virtual directory
DirectoryEntry virtualDirectory = defaultWebSiteRoot.Children.Add(applicationName, "IIsWebVirtualDir");
virtualDirectory.Properties["Path"][0] = physicalPath;
virtualDirectory.Properties["AppFriendlyName"][0] = applicationName;
virtualDirectory.CommitChanges();
// IIS6 - it will create a virtual directory
// IIS7 - it will create an application
virtualDirectory.Invoke("AppCreate", 1);
object[] param = { 0, applicationPoolName, true };
virtualDirectory.Invoke("AppCreate3", param);
在C#中,您可以嘗試運行一些創建虛擬目錄的服務器端腳本。
並與 '執行' 命令來運行它: http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspx
曼塔斯:感謝對答覆,我已經熟悉了這些腳本(IIS7的有APPCMD),但我需要編寫ac#代碼,另外,使用這些腳本的事件我仍然不知道如何創建應用程序(虛擬目錄正常)。 –
我無法找到'GetWebSiteEntry'。我在我的類庫中引用了System.Web,但找不到該方法的任何標誌。你能指出我的某些「使用」或我可能需要的參考嗎? – Cylindric