2017-10-05 41 views
0

J'ai un petit programme dans lequel je copie des choses de A à B sur le PC. Les chemins du répertoire sont écrits dans la configuration, et quand je (dans l'application) change le répertoire dans la zone de texte, il met à jour le fichier de configuration. Je l'ai vérifié, la valeur est immédiatement réécrite à la clé appropriée. Lorsque je ferme l'application et la rouvre, elle est mise à jour vers le chemin du répertoire précédemment modifié, mais je ne veux pas devoir fermer l'application et la réouvrir est. J'ai un combobox et je veux qu'il se mette à jour dès que la combobox resélectionne les déclenchements d'événements. Mais pendant le runtime (bien qu'il soit déjà changé dans la configuration), il ne mettra pas à jour le chemin du répertoire indiqué dans l'application. J'ai lu et essayé tout ce que j'ai trouvé en ligne et malheureusement rien n'a aidé. Pas tous les tous les types deMettre à jour/Actualiser le fichier de configuration

ConfigurationManager.RefreshSection("appSettings"); 

est ma config THis:

<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> 

ce code:

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"); 

J'espère que quelqu'un peut me aider. Cordialement

+0

peut-être essayer d'écrire votre propre fichier config xml? – oopsdazie

Répondre

0

Je pense qu'il n'y a pas de problème avec le code problème lié à votre accès, cela fait une différence si vous exécutez votre application dans IIS et exécutez votre exemple de test à partir de Visual Studio. L'identité de processus ASP.NET est le compte IIS, ASPNET ou NETWORK SERVICES (en fonction de la version d'IIS).

Vous devez peut-être accorder des services ASPNET ou NETWORK Modify access sur le dossier où réside web.config.