【发布时间】:2017-11-27 06:10:55
【问题描述】:
我正在使用 TFS 2017 Realese 定义来部署我的网站,我的密码和用户名环境变量是隐藏的,但是当传递连接字符串时 Web.config 文件显示密码和用户名如何加密 web.config 中的连接字符串文件?
【问题讨论】:
标签: encryption tfs web-config connection-string
我正在使用 TFS 2017 Realese 定义来部署我的网站,我的密码和用户名环境变量是隐藏的,但是当传递连接字符串时 Web.config 文件显示密码和用户名如何加密 web.config 中的连接字符串文件?
【问题讨论】:
标签: encryption tfs web-config connection-string
您可以在命令提示符(cmd.exe)中运行此命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/SampleApplication"
其中 SampleApplication 是您在 IIS 中的应用程序的名称 请参阅this article 了解更多信息。
【讨论】:
更新
要加密 web.config 文件中的连接字符串,TFS 构建任务无法执行此操作。它与IIS更相关。建议你看看这个博客:Encrypting connectionStrings in Web.Config using the NetFrameworkConfigurationKey in an IIS Web Farm scenario
在 VSTS 发布期间,您可以尝试通过 Replace Token task 替换 web.config 中的特定值。示例截图:
对于这个Replace Token任务的配置,可以替换#{con}# 到con变量值(创建一个变量(变量名:con)在 所有 .config 文件的构建定义的变量选项卡(具有 #{con}# 代码)在 $(System.DefaultWorkingDirectory) 位置。
<connectionStrings>
<add name="DefaultConnection" connectionString="#{con}#" providerName="System.Data.SqlClient" />
</connectionStrings>
【讨论】:
我使用@Arman 的答案让它工作了,但不得不稍微修改一下,我必须默认指定站点编号,它的 1 是一个不同的网站,请查看此链接以了解如何找到您的网站编号。 link
%%windir%%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2"
在我的情况下,该站点是 2 号。您还必须以管理员身份运行命令提示符。
感谢您的所有回答。
【讨论】: