2017-03-27 9 views
0

ために変換しますタコ変数ごとに、次のセクションが、タコのWeb.configは、私はクライアントの下でWeb.configファイルにある2つのサービスのエンドポイントを使用したWebプロジェクトを持っているクライアントエンドポイントアドレス

HTTPとなり、通常、私はタコのためのWebUIを

使用していますあなたのような任意の使用の変更に対処する方法の参照と実際の変数を見つけることができないよう:// {サーバー-name}/app#/ projects/{プロジェクト名} /変数

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 Transformsを使って行うことができます)。それが何であるか可能な場合

エンドポイントアドレス

のための適切な交換価値は、私はこれは、複数の異なるエンドポイントアドレスのためどのように実現するだろうこととでしょうか?

答えて

3

あなたの好きな音がそこにあります。 Web.configトランスフォームで既に動作している場合は、トランスフォームのIN値を変数置換トークンに置き換えます。例えば

:もちろん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)を与えることで、変数全体にアドレス全体を入れてください。

重要な部分は、可変置換トークンを設定に追加しています。 Octopusはまずコンフィギュレーションファイルの変数置換を実行し、変換を実行します。つまり、最初のパスがWeb.Release.Configのトークンを置き換え、OctopusがWeb.configに対して変換を実行します。

希望するものがあります。

関連する問題