代码之家  ›  专栏  ›  技术社区  ›  Tyler Clendenin

我可以从ColdFusion以编程方式管理(添加/编辑/删除)IIS7站点吗?

  •  7
  • Tyler Clendenin  · 技术社区  · 14 年前

    使用ColdFusion 8/9,我该如何管理iis7。例如:

    我正在构建一个网站生成器,当有人填写表单时,将生成一个网站。此过程中的一个步骤是创建具有特定主机头/IP绑定的IIS站点。另一个步骤可能是允许用户上载SSL证书。这可能不可能,我不确定。但我知道应该有一种方法与IIS7交互。

    4 回复  |  直到 13 年前
        1
  •  9
  •   erlando    14 年前

    幸运的是,ColdFusion 8和9可以实例化.NET组件,这意味着您可以访问.NET托管代码IIS管理API:

    Using Microsoft .NET Assemblies

    iis7附带两个.NET托管代码管理API:

    Microsoft.Web.Administration

    Microsoft.Web.Management

    它们居住在: c:\windows\system32\inetsrv .

    使用此功能,您应该能够通过ColdFusion使用这些API来创建网站和管理IIS功能。

    如果直接调用这些API时出现问题(即某些数据项没有正确封送回ColdFusion),则可以使用自己的.NET代码来包装对这些API的调用。

    有关使用上述API创建和管理网站的详细信息,请参阅以下链接:

    IIS 7 Configuration Reference

    Powerful Administration Tools

    How to Use Microsoft.Web.Administration

    Managed-Code API Reference (IIS 7)

    还应该注意的是,运行该站点的Windows帐户应该是管理员组的成员,以便通过这些API管理IIS。

    如果这是一个面向公众的站点,那么我将把应用程序分成两部分。您面向公众的ColdFusion(在低权限帐户下运行)站点收集有关要创建的站点的信息。将此数据作为任务发布到某个队列中(可以像数据库一样简单),以便由计划任务或Windows服务(以高度特权用户身份运行)读取,后者定期从队列中选取这些任务(例如每15或30秒一次)。

    这被称为“沙盒”,意味着如果你的ColdFusion网站被劫持,那么它就不会以提升的权限运行,也不会造成太大的损害。所有高度特权的任务都是沙盒处理的,而不是通过网络显示的。

        2
  •  1
  •   Henry    14 年前
        3
  •  0
  •   Dawesi    13 年前
        4
  •  -2
  •   Blkdj Eerfj    14 年前

    我认为这样做不是一种有益的方式。它就是不起作用。