0

,爲我們的本地調試,我們使用這個在我們的web.config章魚部署變換SessionState的提供商

<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 appSettings我們使用OD的變量進行部署期間的轉換。有沒有辦法在變換中包含像這樣的複雜設置,而不使用變換.config文件?

回答

0

使用配置變換(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作爲八達通的變量。

有大量的信息和例子在這裏:

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