对于我们的本地调试,我们在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 appSettings,我们在部署期间使用OD的变量进行转换。有没有办法在变换中包含这样的复杂设置而不使用变换.config
文件?
答案 0 :(得分: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
定义为Octopus中的变量。
这里有很多信息和例子:
https://octopus.com/docs/deploying-applications/configuration-files