2008-11-06 15 views

Respuesta

13

This fellow código de ejemplo muestra si todavía quiere hacerlo después de todas las salvedades:

protected void EditConfigButton(object sender, EventArgs e) 
{ 
    Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~"); 
    AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings"); 
    //Edit 
    if (objAppsettings != null) 
    { 
     objAppsettings.Settings["test"].Value = "newvalueFromCode"; 
     objConfig.Save(); 
    } 
} 

Una razón válida para la edición de un web.config es cifrar ella, que es lo que el artículo se trata.

+0

Cambiar el modo de autenticación, por ejemplo. – AgentFire

1

Dependiendo de lo que esté haciendo, el método es un poco diferente en cada situación. Sin embargo, el método más robusto es cargarlo como un XmlDocument y modificarlo según sea necesario a través de ese método, pero DEBE tener cuidado de modificarlo solo de la manera necesaria.

3

Puede usar WebConfigurationManager para leer secciones de configuración específicas. Esto devolverá un objeto ConfigurationSection. Puede usar esto para leer/modificar los elementos de configuración en la sección. Una vez que los haya actualizado, puede guardar ConfigurationSection y actualizará el archivo con sus cambios.

Utilizo esto para cifrar automáticamente la configuración de la aplicación y connectionStrings en Application_Start si aún no están encriptados. Realmente no he cambiado ninguna configuración de esta manera, pero parece que deberías poder hacerlo.

Guardar el archivo de configuración actualizado puede hacer que la aplicación se recicle dependiendo de cómo se haya creado.

0

Sí, estoy de acuerdo con Josh. He intentado esto antes y he tenido dos efectos negativos:

  1. carga lenta si la página actual después de la devolución de datos porque ASP.NET está cargando el web.config y todos los recursos relacionados
  2. Si cambia la web .config lo suficientemente temprano en el ciclo de carga (por ejemplo, eventos global.asax) el sitio nunca se puede cargar o fallar de maneras impredecibles
1

En teoría; usted podría simplemente generar un archivo de configuración web programáticamente y con algunas plantillas para hacerlo más fácil.

Sin embargo, si está tratando de editar su web.config desde dentro del sitio; es altamente recomienda no hacerlo. Por lo menos; accionarías un reinicio de la aplicación cada vez que lo actualizaste; lo cual sería especialmente malo si estás usando sesiones en proceso.

Como preguntó Anders, ¿qué es lo que estás tratando de hacer?

+0

Cambiar el modo de autenticación, por ejemplo. – AgentFire

0

de acuerdo con otros, editando el webconfig es alcanzable, pero ha llamar a los efectos son sólo para peligroso/riesgo que implica

Si es un valor que depende de la aplicación, a continuación, que debe estar en un archivo de aplicación de configuración específica

0

La cantidad de tiempo que desea modificar la configuración específica de la aplicación después de la implementación, por ejemplo, cuando algo está mal, por ejemplo cambiando la conexión de la base de datos en caso de que la base de datos actual baje. Además, a veces desea crear su propio archivo de configuración basado en XML que desee o modificar programáticamente.

Try WebPad XML - http://xmlwebpad.codeplex.com/

Es un marco para ver una edición de archivos XML. Una vez que lo integre con su aplicación web, edite web.config será tan simple como ver la página web.config, realice los cambios necesarios y presione el botón Guardar (todo desde su aplicación).

Cuestiones relacionadas