我正在进行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