Pregunta

actualmente uso RoleEnvironment.GetConfigurationSettingValue(propertyName) para obtener el valor de una configuración definida en mi archivo de configuración de WebRole (csdef + cscfg).Ok, suena bien.

Esto funciona bien si la configuración existe pero falla con una excepción si la configuración no está definida en csdef y cscfg.

Estoy migrando una aplicación existente a Azure que tiene muchas opciones de configuración en web.config.En mi código, para leer un valor de configuración, me gustaría probar:si existe en la configuración de webRole (csdef + cscfg), lo leo desde aquí; de lo contrario, lo leo con ConfigurationManager desde web.config.Esto evitaría migrar todas las configuraciones desde mi web.config y permitiría personalizar una cuando la aplicación ya esté implementada.

Hay alguna forma de hacer esto ?

No quiero encapsular el GetConfigurationSettingValue en try/catch (y leo desde web.config si ingreso el catch) porque es realmente una forma fea (¡y sobre todo no es efectiva en el rendimiento!).

Gracias !

¿Fue útil?

Solución

Actualización para 1.7 Azure SDK.Se ha introducido la clase CloudConfigurationManager.Permite que una sola llamada GetSetting busque primero en su cscfg y luego recurra a web.config si no se encuentra la clave.

http://msdn.microsoft.com/en-us/LIBRARY/jj157248

Pre 1.7 SDK La respuesta simple es no.(Que yo sepa)

El tema más interesante es considerar la configuración como una dependencia.He descubierto que es beneficioso tratar los ajustes de configuración como una dependencia para que la implementación de respaldo pueda cambiarse con el tiempo.Esa implementación puede ser falsa para las pruebas o algo más complejo como cambiar de .config/.cscfg a una implementación de base de datos para soluciones multiusuario.

Dado este contenedor de configuración, puede escribir TryGetSetting como método interno para cualquiera que sea su fuente de opciones de configuración.Cuando esta característica se agrega a los miembros de RoleEnvironment, solo tendrá que cambiar esa implementación interna.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top