代码之家  ›  专栏  ›  技术社区  ›  Andras Zoltan

使用msdeploy将站点的*new*destinationbinding添加到包中

  •  6
  • Andras Zoltan  · 技术社区  · 15 年前

    我正在使用一个带有msdeploy的登台模型将我们的几个站点部署到一个Web场。这些站点仅在临时箱上的IIS中配置,然后使用msdeploy从头构建目标Web服务器。

    临时框使用自己的绑定(即没有头条目、不同的IP/端口和没有主机头)用于将要活动的站点。当我部署它们时,我首先使用一个XML文件来准备一个参数化包(使用 -declareParamFile switch)声明参数如下:

    <parameters>
      <parameter name="site1">
        <parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
      </parameter>
    </parameters>
    

    因此,在上面的XML中,您可以看到分段站点作为 match 属性设置为与具有该值的绑定匹配。

    然后,当我部署到每个活动站点时,我使用一个不同的参数XML,它为该计算机指定正确的主机头和IP-我使用-setparamfile开关应用这个参数。下面是其中一个例子。

    <parameters>
      <setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
    </parameters>
    

    因此,因为原始参数被声明为与某个已知绑定相匹配,所以我可以将该绑定替换为每个活动服务器上实际需要的绑定。

    我现在要做的是部署站点并添加 新的 目标绑定到它,它包含我们拥有的不同TLD,即site.com、site.co.uk、site.ca等,所有这些绑定在同一IP地址和端口上。

    想要这样做的原因是:

    • 我们要部署的新站点需要不同的主机名,但我们不想给它自己的IP地址(这里的IP地址已用完!)但是让它共享服务器上现有站点已经拥有的IP。
    • 这意味着将特定的主机名绑定添加到已经存在的站点,而不是让它响应任何主机名。
    • 我们目前有四个域名指向现有网站的负载平衡IP(.com,.us,.ca,.com.au)。目前,它工作是因为Web服务器不关心主机头——但是当新站点在同一个IP上运行时,它会,其他域名将不再工作。

    问题是,我认为似乎没有任何方法可以添加此类信息。我尝试了添加多个 setParameter 第二个XML中的元素,但这只是重复覆盖绑定的效果,最后一个元素是最终的赢家。

    一种解决方案是为临时框中的每个站点添加“placeholder”绑定,该绑定表示每个域名、端口等的目标外部绑定;然后修改两个参数文件,以将这些绑定替换为实际绑定。

    但对我来说,这完全是错误的——那就是将舞台盒建模为 适合 实况部署;应该是相反的。

    有没有可能 添加 与msdeploy的站点绑定(如果是,如何?)或者它只支持替换?

    1 回复  |  直到 15 年前
        1
  •  4
  •   Andras Zoltan    15 年前