2017-03-27 87 views
0

我有了一個web項目使用位於Web.config文件中的客戶端下的兩個服務端點 - >終點 - >地址部分八達通Web.config文件轉換爲客戶端的端點地址

我已經找到了每章魚變量下面的部分,但似乎無法找到像你這將是

HTTP如何使用,以解決變化的任何引用和實際的變量通常會

我使用八達通在WebUI:// {服務器-name}/app#/ projects/{project-name} /變量

variable-substitution-syntax

我試圖賦予像這樣的變數,但值永遠不會更新 原條目類似如下

<endpoint address="http://services-test.example.com/test.svc/soap" binding="basicHttpBinding" bindingConfiguration="soap" contract="test.service" name="soap" /> 

Name     Address       Instance 
Endpoint[A].Address  test-service-a.example.com  1 
Endpoint[B].Address  test-service-b.example.com  2 

這是不是使用八達通的變量是有史以來可能嗎? (我知道它可以使用常規的Web.config變換來完成,因爲我們已經這樣做了)。

如果有可能的是會爲

端點地址

正確的替換值和我將如何做到這一點的多個不同端點地址?

回答

3

聽起來像你是大多數的方式。如果它已經在使用你的Web.config變換,那麼你所需要做的就是用變量替換標記替換變換中的值。

例如:Web.Release.Config

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 
    <system.serviceModel> 
    <client> 
     <endpoint address="http://#{Server1}/test.svc/soap" name="x1" 
       xdt:Locator="Match(name)" xdt:Transform="SetAttributes(address)" /> 
     <endpoint address="#{Endpoint2}" name="x2" 
       xdt:Locator="Match(name)" xdt:Transform="SetAttributes(address)" /> 
    </client> 
    </system.serviceModel> 
</configuration> 

當然也有很多在這裏選擇。

對於文件名,您可以使用默認約定'Web.Release.config'或者使用'Web。[Environment] .config'或者使用自定義屬性。我們使用'Web.Octopus.Config',這樣它就不會被任何其他進程拾取。

更多關於命名轉換這裏:​​

更多關於自定義轉換(Web.Octopus.com)位置:https://octopus.com/docs/deploying-applications/configuration-files#Configurationfiles-AdditionalConfigurationTransforms

對於變量,可以定義一個變量只是服務器( name = x1)這更簡單一些,或者把整個地址放在一個變量中,使得Octopus有更多的控制權(name = x2)。

關鍵部分是獲取變量替換令牌到配置中。八達通首先在配置文件上運行變量替換,然後運行變換。這意味着第一遍將替換Web.Release.Config中的令牌,然後Octopus將運行鍼對Web.config的變換

希望有所幫助。