Преобразование Octopus Deploy поставщика SessionState

Для нашей локальной отладки мы используем это в нашем web.config

<sessionState mode="Custom" customProvider="MyAppStateStore" timeout="480">
  <providers>
    <add name="MyAppStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider" 
         applicationName="MyApp" 
         host="127.0.0.1" 
         accessKey="" 
         ssl="false" />
  </providers>
</sessionState>

На нашем сервере разработки мы хотели бы, чтобы это было так:

<sessionState mode="Custom" customProvider="MyAppStateStore" timeout="480">
  <providers>
    <add name="MyAppStateStore" type="Microsoft.Web.Redis.RedisSessionStateProvider"
         applicationName="MyApp" 
         host="www.oursite.com.backends"
         port="1234"
         databaseId="1"
         accessKey=""
         connectionTimeoutInMilliseconds="5000"
         operationTimeoutInMilliseconds="1000"
         throwOnError="true"
         ssl="false" />
  </providers>
</sessionState>

Для большинства наших настроек приложения web.config мы используем переменные OD для преобразований во время развертывания. Есть ли способ включить подобную сложную настройку в преобразование без использования файла преобразования .config?


person M Kenyon II    schedule 22.08.2017    source источник


Ответы (1)


Использование преобразования конфигурации (web..config) — самый простой подход. Вы можете комбинировать его с функцией «заменить переменные в файлах», если хотите использовать заполнители. Например:

web.production.config:

<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
  <sessionState mode="Custom" customProvider="MyAppStateStore" timeout="480">
    <providers>
      <add 
         xdt:Transform="Replace" 
         xdt:Locator="Match(name)"
         name="MyAppStateStore" 
         type="Microsoft.Web.Redis.RedisSessionStateProvider"
         applicationName="MyApp" 
         host="#{Host}"
         port="1234"
         databaseId="1"
         accessKey=""
         connectionTimeoutInMilliseconds="5000"
         operationTimeoutInMilliseconds="1000"
         throwOnError="true"
         ssl="false" />
    </providers>
  </sessionState>
</configuration>

Затем вы можете определить Host как переменную в Octopus.

Здесь много информации и примеров:

https://octopus.com/docs/deploying-applications/configuration-files

person Paul Stovell    schedule 24.08.2017