从代码创建IIS应用程序

时间:2011-10-03 08:10:41

标签: c# iis

我正在进行Web服务安装。 我需要做的一件事是在默认网站下创建一个新的虚拟目录。 问题是我需要为该虚拟目录设置一个不同的应用程序池(请不要问为什么......这些是要求而我无能为力)。

在IIS6中,由于虚拟目录和应用程序之间没有区别,所以我没有遇到任何问题。 在IIS7中,无法将应用程序池设置为虚拟目录,因此我需要创建一个新的“应用程序”并将应用程序池附加到它。

我在C#中找不到任何合理的示例/教程。我需要一些帮助: - )

感谢。

2 个答案:

答案 0 :(得分:1)

在那里找到答案。 我使用相同的代码在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);

答案 1 :(得分:0)

使用C#,您可以尝试运行一些创建虚拟目录的服务器端脚本。

采用类似于以下的脚本: http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/5adfcce1-030d-45b8-997c-bdbfa08ea459.mspx?mfr=true

使用'Execute'命令运行它: http://www.codeproject.com/KB/cs/Execute_Command_in_CSharp.aspx