gpt4 book ai didi

iis - 使用 MSDeploy 将站点的 *new* DestinationBinding 添加到包

转载 作者:行者123 更新时间:2023-12-04 12:38:26 25 4
gpt4 key购买 nike

我正在使用带有 MSDeploy 的暂存模型将我们的几个站点部署到网络场。这些站点仅在临时框上的 IIS 中配置,然后使用 MSDeploy 从头开始​​构建目标 Web 服务器。

暂存框使用自己的绑定(bind)(即没有标题条目、不同的 IP/端口和没有主机标题)用于将要运行的站点。当我部署它们时,我首先有一个用于准备参数化包的 xml 文件(使用 -declareParamFile 开关),它声明参数如下:

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

因此,在上面的 XML 中,您可以看到暂存站点托管在端口 17000 上,即 match。属性设置为匹配具有该值的绑定(bind)。

然后,当我部署到每个实时站点时,我使用不同的参数 XML,为该机器指定正确的主机头和 IP - 我使用 -setParamFile 开关应用它。这是其中之一的示例。
<parameters>
<setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>

所以,因为原始参数被声明为与已知绑定(bind)之一匹配 - 我可以用我实际希望它在每个实时服务器上的绑定(bind)替换该绑定(bind)。

我现在要做的是部署站点并添加 它的目标绑定(bind)包含我们拥有的不同 TLD - 即 site.com、site.co.uk、site.ca 等,都绑定(bind)在相同的 IP 地址和端口上。

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

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

    一种解决方案是为暂存框中的每个站点添加“占位符”绑定(bind),它们代表每个域名、端口等的目标外部绑定(bind);然后我修改这两个参数文件以将这些绑定(bind)替换为真实的。

    但对我来说,这感觉完全错误——那将是对暂存盒进行建模以适应实时部署;应该反过来。

    是否可以使用 MSDeploy 实际添加站点绑定(bind)(如果可以,如何添加?),还是仅支持替换?

    最佳答案

    经过多次头疼之后,似乎无法使用带有 msdeploy 的 DestinationBinding 操作添加新绑定(bind)。

    可能的做法是附加一个要在部署后执行的脚本,每次都使用 appcmd 添加绑定(bind)。

    因此,通过 msdeploy 进行的初始同步将删除这些绑定(bind)(因为它们不在临时服务器上),但 appcmd 脚本会再次添加它们。

    不过,这并不是一个真正理想的解决方案,因为它是另一个必须保持最新的脚本。

    关于iis - 使用 MSDeploy 将站点的 *new* DestinationBinding 添加到包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2280817/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com