當我嘗試訪問已加密,無法正確解密配置部分(例如,有人剛剛從另一臺機器上抓起配置文件盲目) - Configuration
類拋出異常。在這種情況下,我想抓住這種情況並完全重寫該部分。覆蓋加密配置部分而不解密?
我試着刪除和添加回有問題的部分,但似乎去除被忽略 - 在「追趕」第二條語句拋出約等部分其他異常已經存在:
try
{
// this getter might throw an exception - e.g. if encrypted on another machine
var connStrings = config.ConnectionStrings;
}
catch (ConfigurationException)
{
config.Sections.Remove("connectionStrings");
config.Sections.Add("connectionStrings", new ConnectionStringsSection());
}
它可能與事實我有connectionStrings部分居住在單獨的文件,即我的配置文件有類似<connectionStrings configSource="connections.config"/>
,而實際的加密內容在connections.config
文件中。
是否有可能做什麼,我需要在沒有回落到直接XML操作,僅使用.NET配置類?
謝謝!實際上,我忘記了connectionStrings也是從機器配置中拉出來的。否則我的'config.Sections.Remove(「connectionStrings」);'工作得很好。沒有必要保存一次或刷新。至少,在我的情況下,它沒有這些線。但是,無論如何,謝謝你的回答,讓我走向正確的道路:) –
哦。奇怪的。是的,在我的情況下,我*確實需要這兩行。 – aquinas
在我的情況下,它不是一個運行應用程序的配置,只是通過'ConfigurationManager.OpenExeConfiguration(executablePath)'加載其他exe文件。也許這就是原因... –