【发布时间】:2014-08-29 09:07:50
【问题描述】:
我在使用想要写入 .exe.config 的应用程序时遇到问题。
见以下代码:
using System;
using System.Configuration;
using System.IO;
namespace ConfigurationManagerError
{
class Program
{
static void Main(string[] args)
{
try
{
// set Config-File to persistent folder
ExeConfigurationFileMap exeMap = new ExeConfigurationFileMap();
exeMap.ExeConfigFilename = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData),
"ConfigError\\ConfigurationManagerError.exe.config");
Configuration config = ConfigurationManager.OpenMappedExeConfiguration(exeMap, ConfigurationUserLevel.None);
config.AppSettings.Settings.Add(
new KeyValueConfigurationElement("TestKey", "TestValue"));
config.Save(ConfigurationSaveMode.Modified);
Console.WriteLine("Successfully write of Configuration-File to " + config.FilePath);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
Console.Read();
}
}
}
只要我以对文件夹具有读写访问权限的用户身份运行,一切正常。 如果我有一个在文件夹中没有写入权限的用户,则会出现一个异常,指出不允许写入 .exe.config 的权限。 到目前为止,一切都按预期进行。
但是,如果我现在有一个有权写入 现有 文件但无权创建新文件 的用户,则会引发类似
的异常Access to the path 'C:\ProgramData\ConfigError\ila2ba_0.tmp' is denied
ConfigurationManager 似乎想要创建一个 tmp-File。 怎么解决?
非常感谢! 最好的祝福, 约尔格
【问题讨论】: