我有一个小程序,我可以在PC上复制从A到B的粘贴内容。目录路径写在配置中,当i(在应用程序中)更改文本框中的目录时,它正在更新配置文件。我查了一下,价值是在适当的密钥上立即重写的。当我关闭应用程序并重新打开它时,它更新到以前更改的目录路径,但我不想关闭应用程序并重新打开。我有一个组合框,我希望它在组合框重新选择事件触发后立即更新。但是在运行时期间(尽管它已在配置中更改),它不会更新应用程序中显示的目录路径。
我通读并尝试了我在网上找到的所有内容,遗憾的是没有任何帮助。不是每一种
ConfigurationManager.RefreshSection("appSettings");
这是我的配置:
<appSettings file="">
<clear />
<add key="SourcepathClient" value="D:\xxx" />
<add key="SourcepathWin32" value="D:\xxx" />
<add key="DestinationpathUpdatePackages" value="D:\xxx" />
<add key="DestinationpathClient" value="D:\xxx" />
<add key="5_9_0-DestinationpathClient" value="D:\xxxt" />
<add key="5_9_0-DestinationpathUpdatePackages" value="D:\xxx" />
<add key="5_9_1-DestinationpathClient" value="D:\xxx" />
<add key="5_9_1-DestinationpathUpdatePackages" value="D:xxx" />
<add key="5_9_2-DestinationpathClient" value="D:\xxx" />
<add key="5_9_2-DestinationpathUpdatePackages" value="D:\xxx" />
</appSettings>
这个代码:
Configuration config = ConfigurationManager.OpenExeConfiguration(System.IO.Path.Combine(Directory.GetCurrentDirectory(), "UpdatePackager.exe"));
config.AppSettings.Settings[ComboBoxVersion.Text + "-DestinationpathClient"].Value = TextBoxDestinationpathClient.Text;
config.AppSettings.Settings[ComboBoxVersion.Text + "-DestinationpathUpdatePackages"].Value = TextBoxDestinationpathUpdatePackage.Text;
config.AppSettings.SectionInformation.ForceSave = true;
config.Save(ConfigurationSaveMode.Full);
ConfigurationManager.RefreshSection("appSettings");
我希望有人可以帮助我。 此致
答案 0 :(得分:0)
我认为与您的访问相关的代码没有问题,如果您在IIS中运行应用程序并从Visual Studio运行测试示例,则会产生影响。 ASP.NET进程标识是IIS帐户,ASPNET或NETWORK SERVICES(取决于IIS版本)。
可能需要授予ASPNET或NETWORK SERVICES修改web.config所在文件夹的访问权限。