2011-09-29 11 views
6

Estoy intentando configurar entornos de ensayo y en vivo en Azure (juego de herramientas de septiembre) y quiero una base de datos por etapas y en vivo separada con diferentes cadenas de conexión. Obviamente, puedo hacer esto con las transformaciones web.config en Visual Studio, pero ¿hay alguna forma de automatizar un cambio de cadena de conexión durante un intercambio VIP? De modo que el sitio de ensayo apunte a datos de transición y el sitio en vivo a datos en vivo ? Prefiero no tener que implementar dos veces.¿Es posible cambiar la cadena de conexión durante un intercambio de Azure VIP?

Respuesta

9

No creo que haya ningún cambio en cuanto a la función cuando se realiza un intercambio VIP. Más bien, altera la configuración del equilibrador de carga.

De modo que no ocurre nada en su aplicación que haga que cambie la configuración. Lo único que puedo pensar es que la URL cambia entre los dos. Podría implementar un código que elija una de dos cadenas de conexión, según la URL a la que se accedió (suponiendo que solo estamos hablando de un rol web), pero parece desordenado.

Fundamentalmente, creo que el problema es que la puesta en escena no es un entorno de prueba separado; es un trampolín hacia la producción. Por lo tanto, la suposición de Microsoft es que la configuración no cambia.

+1

Sí, esto es exactamente lo que encontramos: "puesta en escena", aquí, significa "a punto de convertirse en realidad". Tenemos un entorno completamente separado en una suscripción diferente de Azure para la prueba. Una cosa que hacemos después de la implementación pero antes del intercambio VIP es hacer girar el entorno de "puesta en escena" solo para verificar que no haya errores simples en las transformaciones de web.config y similares, esto también asegura que las memorias caché estén ocupadas y el Máquinas virtuales funcionando correctamente. –

+0

Thx muchachos. Parece un entorno separado para la prueba en ese momento. No demasiado, por favor, sobre todo a un costo. – Andiih

+0

+1 para el último párrafo. El área de ensayo solo debe usarse para asegurarse de que su aplicación funcione correctamente antes de que se active el "interruptor de producción". –

15

Con las API de administración y los cmdlets de PowerShell, puede automatizar una gran cantidad de la plataforma Azure y esto puede incluir la coordinación de un conmutador VIP y un cambio de cadena de conexión.

Este es el enfoque:

  1. Añadir la cadena de conexión de base de datos para su archivo ServiceConfiguration.
  2. Modificar la lógica de aplicación para leer la cadena de conexión de la configuración específica Azure utilizando RoleEnvironment.GetConfigurationSettingValue en lugar de la más típica API .NET ConfigurationManager.ConnectionStrings de configuración
  3. Implementar RoleEnvironmentChanging para que su lógica será notificado si el servicio Azure la configuración cambia alguna vez Agregue código para actualizar la cadena de conexión de su aplicación aquí, nuevamente usando RoleEnvironment.GetConfigurationSettingValue.
  4. Implementar para la clasificación por un entorno ServiceConfiguration para su "puesta en escena" cadena de conexión DB
  5. Escribir un script de PowerShell que invocará el interruptor VIP (construir alrededor de la Move-Despliegue cmdlet del Windows Azure Platform PowerShell Cmdlets 2.0) e invocar un cambio de configuración con un nuevo archivo ServiceConfiguration que incluye la cadena de conexión DB "producción" (ver Set-DeploymentConfiguration)

en su conjunto, el paso 5 se realizará el interruptor VIP y llevar a cabo una actualización de cadena de conexión en una sola operación automatizada.

+3

Esta respuesta se merece más votos. –

Cuestiones relacionadas