【问题标题】:Can I automate creating a .NET web application in IIS?我可以在 IIS 中自动创建 .NET Web 应用程序吗?
【发布时间】:2010-09-23 18:06:21
【问题描述】:

我需要在几台笔记本电脑上部署一个 Web 应用程序(虽然它是一个 Web 应用程序,但它只打算通过 localhost 运行 - 因此需要部署在几台不同的机器上)。

通常我会去 IIS 并右键单击一个目录来创建一个 Web 应用程序,但我非常希望自动执行此安装步骤。能做到吗?

我想使用 IIS,但我想在不打开 IIS Microsoft 管理控制台 (MMC) 的情况下自动创建 Web 应用程序。

【问题讨论】:

    标签: asp.net iis deployment installation


    【解决方案1】:

    如果您在 IIS 6 上部署,我可以建议您使用 look at this link or at this one 如果它是 IIS 7(我可以推荐 Mike Volodarsky's blog 以获取有关 IIS 7 的一般信息)。

    编写一些批处理文件来自动创建站点应该很简单。

    例子:

    • IIS6 : iisweb /create C:\Rome "My Vacations" /d www.reskit.com /dontstart
    • IIS7 : %windir%\system32\inetsrv\AppCmd 添加站点 /name:MyNewSite /bindings:http/*:81: /physicalPath:c:\inetpub\mynewsite

    【讨论】:

      【解决方案2】:

      您实际上是在问两个不同的问题。首先,为什么要重新发明轮子?很可能,这些笔记本电脑已经能够运行 IIS——它在所有“现代”Windows 版本上都可用,可能除了 Vista Home。其次,VS.NET 安装程序可以轻松定位和自动安装到 IIS。如果您使用 Wix 或其他第三方安装程序,则需要更多的手动工作,但仍然可以完成。

      编辑:在重新阅读您的问题时,这听起来像是您真正要问的 - 您已经知道 IIS 在目标计算机上可用,但只是不想在每台计算机上手动安装。正确的?在这种情况下,请务必查看 VS.NET 安装项目 - 他们有一个用于 IIS 部署的内置目标。

      【讨论】:

      • 是的,这就是我所说的,我刚刚编辑了问题:D Thx
      • +1 用于阅读问题。起初我也在想“Mono”,但事实证明,标题与文字没有太大关系......
      • 我认为那是因为它一开始就不在那里。 :-) 我把标题改成了现在的样子。
      • 如果你只在一台机器上安装一个实例,MSI 包就很好。如果要安装多个实例,那就没那么容易了。
      • @croc - 但是打包安装仍然比运行多个完全手动安装更容易,这就是 OP 面临的问题。在某些情况下,打包 (MSI) 安装程序甚至可以通过 IT 管理工具从组织的任何位置进行完全脚本化和部署。事实上,我的观点恰恰相反——如果你只想在一台机器上部署一个实例,为什么还要为 MSI 烦恼呢?
      【解决方案3】:

      你可以看看里面Cassini Sample Web Server(自带源码):

      ASP.NET Cassini Web 服务器示例是使用 Microsoft® .NE​​T® Framework 编写的示例 Web 服务器,并演示了使用 ASP.NET 托管 API (System.Web.Hosting) 托管 ASP.NET。

      【讨论】:

        【解决方案4】:

        您可以使用 system.DirectoryServices 类,例如

        http://www.gafvert.info/iis/article/cs_create_website_iis6.htm

        【讨论】:

        • DirectoryServices 非常适合创建 IIS6 网站。如果 IIS6 兼容模式为 1,它也可以用于 IIS7。对于 IIS7,您还可以使用 Web 管理 API。这两种方法都可以在 powershell 中编写脚本。也许您可以创建 powershell 脚本来部署网站。
        【解决方案5】:

        要实现最小的 Web 服务器,您可以使用 HTTP.SYS(使用 Windows XP SP2 或更高版本部署的 IIS 的核心组件)。在 .NET 中,这可以做到,例如通过使用 System.Net 命名空间中的 HttpListener 类。

        【讨论】:

          【解决方案6】:

          你也可以试试Mono。它适用于 Linux、Mac OS X 和 Windows。

          他们有一个用于 .NET 应用程序的 xsp 网络服务器。

          ASP.NET | Mono 中有相关文档。

          【讨论】:

            【解决方案7】:

            新建一个“设置和部署”类型的 Visual Studio 项目,并使用“Web 设置”类型。

            这将创建一个 .msi 安装程序,它将在 IIS 中自动为您创建 Web 应用程序。

            您还将获得执行网络安装的能力,因此如果您拥有正确的权限,您可以集中管理。

            【讨论】:

              【解决方案8】:

              您可以使用项目msbuildtasks 中提供的 WebDirectoryCreate 任务来创建虚拟目录,而无需使用 MMC 控制台。

              【讨论】:

                【解决方案9】:

                看看this post。它解释了如何从命令行启动 Cassini web server 并将其添加为 shell 扩展。

                CarlosAg 的博客上有一些关于 IIS administration throw PowerShellmanaged code 的精彩帖子。

                【讨论】:

                • 最后两个链接(实际上)已损坏(重定向到通用页面,“归档的 MSDN 和 TechNet 博客”)。在存档中可能会或可能不会找到它们。
                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2017-01-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2010-11-15
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多