Mon exigence est de mettre à jour le fichier appsettings au moment de l'exécution lorsque l'application est lancée. Mais rencontré un problème où web config est remplacé à chaque minute avec les nouveaux appsettings. Comment puis-je arrêter de remplacer chaque minute?webconfig est remplacé chaque minute automatiquement
Je suis passé par différentes solutions ici et mises en œuvre comme ci-dessous:
- Dans config web, nous avons chemin par défaut pour appsettings:
appSettings file="C:\Config\MyProj\Appsettings.Config"
- Dans Global.asax.cs, j'appelle la méthode suivante pour remplacer dynamiquement le fichier my appsettings.
public void ChangeAppSettings(string path) { System.Configuration.Configuration configuration = null; if (System.Web.HttpContext.Current != null) { configuration = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); } else { configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); } // update appconfig file path configuration.AppSettings.File = path; // Save the configuration file. configuration.Save(ConfigurationSaveMode.Modified); // Force a reload in memory of the changed section. ConfigurationManager.RefreshSection("appSettings"); }
Ou est-il une meilleure façon de mettre en œuvre?
Pouvez-vous fournir plus d'informations sur les raisons pour lesquelles ce comportement est nécessaire? Pourquoi ne pas utiliser une base de données pour conserver ces paramètres d'application? Et laissez les fichiers statiques aux fichiers .config. – Alexei
Nous avons cinq environnements et chaque environnement a ses propres paramètres d'application et aussi certains en commun. Chaque environnement a une application Web et une application de console qui partagent les mêmes paramètres d'application. Lorsque nous déployons, il est fastidieux de mettre à jour toute la configuration individuellement. Nous sommes arrivés avec une solution où chaque dossier de projet aura une variable d'environnement qui dit de prendre le bon fichier de paramètres de l'application. Et quand l'application est démarrée obtient le chemin d'environnement des appsettings et charge en conséquence – Niru