2010-02-14 10 views
75

¿Cómo puedo modificar/manipular el web.config programáticamente con C#? ¿Puedo usar un objeto de configuración y, en caso afirmativo, cómo puedo cargar el web.config en un objeto de configuración? Me gustaría tener un ejemplo completo cambiando la cadena de conexión. Después de la modificación, el web.config se debe volver a escribir en el disco duro.Cambiar un programa web.config programáticamente con C# (.NET)

+0

Consulte su publicación en el blog sobre cómo [manipular mediante programación a web.config en ASP.NET 2.0 y ASP.NET 3.5] (http://www.dotnetcurry.com/ShowArticle.aspx?ID=102) O bien, consulte esta pregunta que tiene la respuesta para tu pregunta. [¿Cómo configuro una cadena de conexión de forma programática en .net?] (Http://stackoverflow.com/questions/360024/how-do-i-set-a-connection-string-config-programatically-in-net/ 1312739) – Shoban

Respuesta

94

aquí está algo de código:

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

Ver más ejemplos en this article, es posible que tenga que echar un vistazo a impersonation.

+0

Esto me da la "referencia de objeto no configurada para una instancia de un objeto". Excepción, ¿alguien más se ha topado con esto? – Skami

+0

¿Cuál es el nombre de su cadena de conexión en el archivo web.config? –

+0

el enlace al artículo está roto – 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

¿Cómo obtener el ID de usuario de la variable de sección? – Niks

5

Dado que el archivo web.config es un archivo xml, puede abrir web.config utilizando la clase xmldocument. Obtenga el nodo de ese archivo xml que desea actualizar y luego guarde el archivo xml.

aquí está la URL que explica en más detalle cómo puede actualizar el archivo web.config mediante programación.

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

Nota: si realiza algún cambio en web.config, ASP.NET detecta que los cambios y volverá a cargar su aplicación (grupo de aplicaciones de reciclaje) y el efecto de esto es los datos almacenados en Sesión, Aplicación, y Cache se perderá (suponiendo que el estado de la sesión es InProc y no utiliza un servidor de estado o base de datos).

Cuestiones relacionadas