2010-02-14 5 views
75

Comment puis-je modifier/manipuler le web.config par programmation avec C#? Puis-je utiliser un objet de configuration et, si oui, comment puis-je charger le web.config dans un objet de configuration? Je voudrais avoir un exemple complet en changeant la chaîne de connexion. Après la modification, le web.config doit être réécrit sur le disque dur.Modifier un web.config par programmation avec C# (.NET)

+0

Consultez son article de blog sur la façon de [manipuler Web.config par programmation dans ASP.NET 2.0 et ASP.NET 3.5] (http://www.dotnetcurry.com/ShowArticle.aspx?ID=102) Sinon, cochez cette question qui a la réponse à votre question. [Comment définir une config de chaîne de connexion par programme dans .net?] (Http://stackoverflow.com/questions/360024/how-do-i-set-a-connection-string-config-programatically-in-net/ 1312739) – Shoban

Répondre

94

Ici, il est un code:

var configuration = WebConfigurationManager.OpenWebConfiguration("~"); 
var section = (ConnectionStringsSection)configuration.GetSection("connectionStrings"); 
section.ConnectionStrings["MyConnectionString"].ConnectionString = "Data Source=..."; 
configuration.Save(); 

Voir d'autres exemples dans this article, vous devrez peut-être jeter un oeil à impersonation.

+0

Cela me donne la "référence d'objet non définie à une instance d'un objet." Exception, quelqu'un d'autre a-t-il rencontré cela? – Skami

+0

Quel est le nom de votre chaîne de connexion dans le fichier web.config? –

+0

lien vers l'article est cassé – Vitall

11
Configuration config = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
ConnectionStringsSection section = config.GetSection("connectionStrings") as ConnectionStringsSection; 
//section.SectionInformation.UnprotectSection(); 
section.SectionInformation.ProtectSection("DataProtectionConfigurationProvider"); 
config.Save(); 
+0

Comment obtenir l'ID utilisateur de la variable de section? – Niks

5

Puisque le fichier web.config est un fichier xml, vous pouvez ouvrir web.config en utilisant la classe xmldocument. Obtenez le noeud à partir de ce fichier XML que vous souhaitez mettre à jour, puis enregistrez le fichier XML.

Voici une URL qui explique plus en détail comment vous pouvez mettre à jour le fichier web.config par programmation.

http://patelshailesh.com/index.php/update-web-config-programmatically

Note: si vous apportez des modifications à web.config, ASP.NET détecte que les changements et rechargera votre application (pool d'applications de recyclage) et l'effet de c'est les données conservées en session, demande, Le cache sera perdu (en supposant que l'état de session est InProc et n'utilise pas un serveur d'état ou une base de données).

Questions connexes