El archivo web.config tiene una sección especial llamada appSettings, en esa sección nosotros podemos guardar configuraciones importantes que se usarán en toda la aplicación... como por ejemplo:
-la ruta donde queremos que se guarden los archivos en el servidor o
-cuál será el skin por defecto de la aplicación o
-el idioma que usará la aplicación... y hasta
-la cadena de conexión a la base de datos... en fin.
Pero esta sección appSettings también puede guardarse en un archivo externo, es decir que el web config sólo contenga la ruta de dónde se guardan las configuraciones de la aplicación, osea quedaría así:
Vean que apropiado no es cierto?
lo que estoy haciendo es, en lugar de guardar las configuraciones importantes en el web.config... dejo indicado en la sección appSettings que uso un archivo externo de configuración, el cual está localizado en la ruta c:\OtroWeb.Config... y se vería asi:
OtroWeb.config:
el cual ni siquiera tiene que estar dentro del folder de la aplicación... ni siquiera tiene que estar en un directorio virtual... lo cual lo hace más seguro aún.
Y para recuperar el valor desde la aplicación ... no hay nada especial que hacer, simplemente lo llamas como siempre:
Ademas, el archivo externo con las configuraciones no tiene necesariamente que tener la extensión .config, puede ser c:\OtroWeb.txt o lo que sea...
Pero, es recomendable cambiarle la extensión?
Nooooooo, de todos modos es mejor que tenga la extensión .config.
Y por qué?
pues porque los archivos de configuración, gracias a su extensión .config, son especiales para el browser y... evitan que puedan ser descargados u obtenidos a través de un navegador.
Algo más?
Sí, pongámonos en el caso que creaste la clave/valor cnn, tanto en el web.config como en el archivo externo... osea:
en el web.config:
[add key="cnn" value="server=(local);database=pb;uid=sa;pwd=" /]
en OtroWeb.config:
[add key="cnn" value="server=123.56.76.55;database=pb;uid=sa;pwd=sa" /]
Lo que ocurrirá aquí es que el valor del web.config será ignorado, es decir prevalece el valor del archivo externo... y si fuera que en el web.config creaste algunas claves y en el archivo externo creaste otras claves diferentes... pues no habrá problema... se usarán las claves de ambos archivos.
Otra sección muy importante del web.config y que también puede guardarse en un archivo externo es la sección connectionStrings:
[connectionStrings configSource="database.config" /]
La diferencia aquí es que la ruta del archivo que guarda las connectionStrings debe ser relativa a la aplicación.
Para recuperar el valor:
Hmmmm.... está super flexible... pero, hay más?
Ahhhh quieres más? Lee los siguientes posts:
Multiples archivos de configuracion II
Multiples archivos de configuracion III
No hay comentarios.:
Publicar un comentario