RE:configurar app.settings por código
Esto me lo dieron en otro foro, a lo mejor es esto lo que buscas:
En vez de editar web.config directamente, yo guardara las conexiones
en un archivo externo, y sobreescribiría *ese* archivo.
Ejemplo :
<connectionStrings configSource="conexiones.config"/>
En ese archivo incluyes las conexiones que quieras, igualito como si fuera web.config:
<connectionStrings>
<add name="Conexion1"
connectionString="bla, bla, bla"
providerName="System.Data.SqlClient" />
<add name="Conexion2"
connectionString="bla, bla, bla"
providerName="System.Data.SqlClient" />
</connectionStrings>
Ahora, con simplemente sobreescribir conexiones.config, tienes los cambios que quieras.
Hay una ventaja adicional al hacerlo así, y es que puedes asignar permisos de escritura por roles.
Por ejemplo, le das derecho de sobreescribir web.config al administrador del sistema,
pero el administrador de la base de datos podría editar conexiones.config.
Administrativamente, eso tiene mas sentido.
Nota: para poder habilitar que la Aplicacion reinicie automáticamente cuando
conexiones.config es modificado, tienes que hacer un cambio en el machine.config.
En <configSections> , edita <section name="connectionStrings" ... >, agregándole
restartOnExternalChanges="true"
Quedará así :
<section name="connectionStrings" type="System.Configuration.ConnectionStringsSection, System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" restartOnExternalChanges="true" requirePermission="false" />
...y listo.
Nota: el PublicKeyToken tuyo puede ser distinto al mío.
No hagas "cut-and-paste de esa parte. Solo de restartOnExternalChanges="true".
Ahora solo tienes que sobreescribir conexiones.config...y tus nuevas conexiones funcionarán inmediatamente.
Un saludo