簡體   English   中英

使用MSDeploy將站點的* new * DestinationBinding添加到包中

[英]Add a *new* DestinationBinding for a site to a package using MSDeploy

我正在使用帶有MSDeploy的臨時模型將我們的幾個站點部署到Web場。 這些站點僅在暫存框中的IIS中配置,然后使用MSDeploy從頭開始構建目標Web服務器。

登台框為將要生效的站點使用自己的綁定(即沒有標頭條目,不同的IP /端口和沒有主機標頭)。 當我部署它們時,我首先有一個xml文件,用於准備一個參數化包(使用-declareParamFile開關),它聲明參數如下:

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

因此,在上面的XML中,您可以看到暫存的站點托管在端口17000上,因為match屬性設置為匹配具有該值的綁定。

當我然后部署到每個實時站點時,我使用不同的參數XML來指定該機器的正確主機頭和IP - 我使用-setParamFile開關應用它。 這是其中一個例子。

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

因此,因為原始參數被聲明為匹配其中一個已知綁定 - 我可以將該綁定替換為我實際希望它在每個實時服務器上的綁定。

我現在要做的是部署網站並添加新的目標綁定,其中包含我們擁有的不同頂級域名(即site.com,site.co.uk,site.ca等),所有這些都綁定在同一個IP地址上和港口。

想要這樣做的原因是:

  • 我們有一個我們想要部署的新站點,需要一個不同的主機名,但是我們不想給它自己的IP地址(在這里耗盡IP!)但是讓它共享一個現有站點的IP。服務器已經有了。
  • 這意味着將特定的主機名綁定添加到已經存在的站點,而不是讓它響應任何主機名。
  • 我們目前有四個域名指向現有站點的負載均衡IP(.com,.us,.ca,.com.au)。 目前它的工作原理是因為Web服務器不關心主機頭 - 但是當新站點使用相同的IP時,它將會,並且其他域名將不再起作用。

問題是我認為似乎沒有任何方法可以添加此類信息。 我已經嘗試在第二個XML中添加多個setParameter元素,但這只是具有重復覆蓋綁定的效果,最后一個作為最終的贏家。

一個解決方案是我為登台框中的每個站點添加“占位符”綁定,它代表每個域名,端口等的目標外部綁定; 然后我修改兩個參數文件來替換那些與真實綁定的綁定。

但對我來說,這感覺是完全錯誤的 - 這將模擬升級盒以適應實時部署; 它應該是相反的方式。

是否可以使用MSDeploy實際添加站點綁定(如果是,如何?),還是僅支持替換?

經過多次打擊之后,似乎沒有辦法使用msdeploy使用DestinationBinding操作添加新綁定。

可能的做法是在部署之后附加要執行的腳本,每次使用appcmd添加綁定。

因此,通過msdeploy進行的初始同步將刪除這些綁定(因為它們不在登台服務器上),但appcmd腳本會再次添加它們。

然而,這不是一個理想的解決方案,因為它是另一個必須保持最新的腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM