Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ConfigurationManager.save()失败_C#_Xml_Save_Configurationmanager - Fatal编程技术网

C# ConfigurationManager.save()失败

C# ConfigurationManager.save()失败,c#,xml,save,configurationmanager,C#,Xml,Save,Configurationmanager,我正在写一个C#应用程序(没有WinForms) 阅读了有关ConfigurationManager的多篇文章后,我以以下代码结束: public static string GetValue(string key) { Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); var settings = configFile.AppSet

我正在写一个C#应用程序(没有WinForms)

阅读了有关ConfigurationManager的多篇文章后,我以以下代码结束:

public static string GetValue(string key)
{
    Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
    var settings = configFile.AppSettings.Settings;
    if (settings[key] == null)
        throw new ArgumentException("Requested unknown key from Application Configuration("+configFile.FilePath+")",key);
    System.Console.Out.WriteLine("Got "+ key + " = " + settings[key].Value);
    return settings[key].Value;
}

public static void SetValue(string key, string value)
{
    try
    {
        Configuration configFile = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        var settings = configFile.AppSettings.Settings;

        settings.Remove(key);
        settings.Add(key, value);
        configFile.Save(ConfigurationSaveMode.Modified,true);
    }
    catch (Exception e)
    {
        Console.WriteLine("Error writing app settings:"+e.Message+e.StackTrace);
    }
}
当我调用congig.save()时,我遇到了这个异常:


发生了什么以及如何修复它?

在GrawCubes评论之后,发现该文件夹是一个VirtualBox共享文件夹。

异常是否有InnerException?配置文件是否在网络驱动器上?内部异常为空。这些文件位于VirtualBox共享文件上,我认为这确实起到了作用。现在从C:\中的文件夹运行,应用程序行为发生了变化。我不再得到上面的例外。但是在写入所有密钥后,我只在配置文件中看到只写入了第一个密钥。结果发现是VirtualBox共享文件夹阻止了我的写入。谢谢GrawCube。太好了!你可能想加上这个作为答案。
Error writing app settings: Method failed with unexpected error code 1.   at System.Security.AccessControl.NativeObjectSecurity.CreateInternal(ResourceType resourceType, Boolean isContainer, String name, SafeHandle handle, AccessControlSections includeSections, Boolean createByName, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
   at System.Security.AccessControl.NativeObjectSecurity..ctor(Boolean isContainer, ResourceType resourceType, String name, AccessControlSections includeSections, ExceptionFromErrorCode exceptionFromErrorCode, Object exceptionContext)
   at System.Security.AccessControl.FileSecurity..ctor(String fileName, AccessControlSections includeSections)
   at System.Configuration.Internal.WriteFileContext.DuplicateTemplateAttributes(String source, String destination)
   at System.Configuration.Internal.WriteFileContext.Complete(String filename, Boolean success)
   at System.Configuration.Internal.InternalConfigHost.StaticWriteCompleted(String streamName, Boolean success, Object writeContext, Boolean assertPermissions)
   at System.Configuration.Internal.InternalConfigHost.System.Configuration.Internal.IInternalConfigHost.WriteCompleted(String streamName, Boolean success, Object writeContext)
   at System.Configuration.MgmtConfigurationRecord.SaveAs(String filename, ConfigurationSaveMode saveMode, Boolean forceUpdateAll)
   at AppConfig.SetValue(String key, String value) in e:\FsLink\ConduitCore\AppConfig.cs:line 37