将 connectionStrings 部分从 web.config 中删除,方法是将其放入external configuration file ,而能够{{ 3}}动态连接字符串没有导致应用程序池回收(这会造成意外的服务中断)。
<connectionStrings configSource="connectionStrings.config"/>
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -pef "connectionStrings" %path_to_web.config_folder%
来加密连接字符串网站在运行上述命令后立即暂时停止响应,因为应用程序池因web.config更改而被回收。但是,我检查了web.config只是“触摸”,即文件的上次修改日期已更新,尽管其内容实际上没有改变。 但是,connectionStrings.config中的连接字符串已成功加密!
我认为可能存在 aspnet_regiis.exe 的一些基本功能/限制,它们在执行此操作后会自动触及web.config,因此我寻找了另一种加密方法。这导致我......
直接从connectionStrings.config文件中取出connectionStrings块并将其 back 插入到加密的web.config中。这避免了使用外部配置的全部意义,并且首先打败了尝试这种方法的目的!
是否可以加密web.config设置而不使应用程序池在生效之前回收?我无法在微软的文档中或任何地方找到这个答案。
谢谢!