【问题标题】:How do I Programatically add a Web Site (C#) to IIS 6.0?如何以编程方式将网站 (C#) 添加到 IIS 6.0?
【发布时间】:2009-06-18 13:38:35
【问题描述】:

到目前为止,我们有一个 Web 应用程序,它安装在 IIS 的“默认网站”下。客户现在希望我们将其安装在不同的网站下,而我们希望通过安装程序来执行此操作。 我的问题分为两部分:A)如何以编程方式在“默认网站”旁边添加另一个网站? B)我们正在使用 Windows Installer - 有没有办法及时触发我在安装程序中为 A 部分编写的任何代码,以便在新位置进行安装?看起来在游戏中重写 Install() 为时已晚......

【问题讨论】:

    标签: c# iis web installation


    【解决方案1】:

    我们使用 js windows 脚本来更新分支之间的虚拟目录,我想您可以使用相同的对象来创建网站

    var iisPath = "IIS://localhost/W3SVC/" + siteID;
    var site = GetObject(iisPath);
    

    Microsoft 有一个fairly extensive article 以编程方式配置 IIS 6。只要您的 MSI 可以调用批处理文件,这篇文章应该会有所帮助。

    This article 也有一个完整的脚本文件来创建一个网站。

    【讨论】:

    • 我想我认为该网站是 C# 而不是请求的程序。但是,这些对象没有理由不能在 C# 中使用。
    【解决方案2】:

    以下是一些用于以编程方式创建站点的 C# 代码:

    1    using System.DirectoryServices;
     2    using System;
     3    
     4    public class IISAdmin
     5    {
     6       public static int CreateWebsite(string webserver, string serverComment, string serverBindings, string homeDirectory)
     7       {
     8          DirectoryEntry w3svc = new DirectoryEntry("IIS://localhost/w3svc");
     9          
     10         //Create a website object array
     11         object[] newsite = new object[]{serverComment, new object[]{serverBindings}, homeDirectory};
     12         
     13         //invoke IIsWebService.CreateNewSite
     14         object websiteId = (object)w3svc.Invoke("CreateNewSite", newsite);
     15         
     16         return (int)websiteId;
     17      
     18      }
     19   
     20      public static void Main(string[] args)
     21      {
     22         int a = CreateWebsite("localhost", "Testing.com", ":80:Testing.com", "C:\\inetpub\\wwwroot");
     23         Console.WriteLine("Created website with ID: " + a);
     24      }
     25      
     26   }
    

    参考:http://www.it-notebook.org/iis/article/cs_create_website_iis6.htm

    【讨论】:

      【解决方案3】:

      如果您使用 WiX 创建 MSI,请参阅 this question

      【讨论】:

      • 不,这里没有 WiX,只有基本的 Windows 安装程序(哦,真高兴……不是。)
      【解决方案4】:

      不是 MSI 文件方面的专家,但您可以使用 adsutil.vbs 通过脚本添加网站。穷人处理这个问题的方法是让您的安装程序将文件放在一个位置而不创建网站,然后使用脚本运行稍后的步骤以在该位置创建一个根目录。对于像我这样讨厌安装程序接触 IIS 的笨拙的 IIS 管理员来说,将此选项设为可选的奖励积分。

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-03
        • 1970-01-01
        • 1970-01-01
        • 2011-06-10
        • 1970-01-01
        相关资源
        最近更新 更多