我使用TFS 2017 Realese定义来部署我的网站,我的密码和用户名环境变量是隐藏的,但是当传递连接字符串时,Web.config文件显示密码和用户名如何加密web.config中的连接sctring文件?
答案 0 :(得分:1)
您可以在命令提示符(cmd.exe)中运行此命令:
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/SampleApplication"
其中SampleApplication是IIS中应用程序的名称 有关详细信息,请参阅this article。
答案 1 :(得分:1)
<强>更新强>
要加密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>
答案 2 :(得分:1)
我使用@Arman答案工作但不得不稍微修改它,我必须默认指定站点号码1这是一个不同的网站检查此链接如何查找您的网站号码。 link
%%windir%%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pe "connectionStrings" -app "/" -site "2"
在我的情况下,该站点是编号2.此外,您必须以管理员身份运行命令提示符。
感谢您的所有答案。
答案 3 :(得分:0)