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
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.
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:
- Añadir la cadena de conexión de base de datos para su archivo ServiceConfiguration.
- 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
- 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.
- Implementar para la clasificación por un entorno ServiceConfiguration para su "puesta en escena" cadena de conexión DB
- 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.
Esta respuesta se merece más votos. –
- 1. Cadena de conexión excepción Azure
- 2. ¿Es posible cambiar parallelOptions.MaxDegreeOfParallelism durante la ejecución de un Parallel.ForEach
- 3. Windows Azure no puede realizar un intercambio VIP entre los despliegues que tienen un número diferente de puntos finales
- 4. Mejores prácticas de la cadena de conexión de Azure
- 5. Cambiar la cadena de conexión predeterminada para Membresía, Roles, etc.
- 6. ¿Cómo evitar el "intercambio de la muerte" durante el desarrollo?
- 7. ¿Es posible suspender y reanudar un servidor de Windows Azure?
- 8. ¿Es posible escribir el método de intercambio en Java?
- 9. Intercambio de una imagen durante el desarrollo web
- 10. ¿Es posible cambiar la acción de UIButton?
- 11. ¿Es posible usar app_offline con Azure Websites?
- 12. ¿Es así como establecer Cadena de conexión contextual usando CloudConfigurationManager?
- 13. Cómo cambiar la región de Azure WebSite
- 14. ¿Desea cambiar la opacidad de un NSPopover? ¿Es posible?
- 15. ¿Es posible cambiar la clase de un objeto Ruby?
- 16. ¿Es posible establecer el esquema predeterminado a partir de la cadena de conexión?
- 17. ¿Es posible interceptar datos de voz durante la llamada?
- 18. ¿Cómo trato la pérdida repentina de conexión a SQL Azure en mi rol de Azure?
- 19. EF 5 Cambiar cadena de conexión en tiempo de ejecución
- 20. Expresiones regulares C# - ¿es posible extraer coincidencias durante la coincidencia?
- 21. ¿Es posible cambiar el valor de una variable durante el tiempo de ejecución?
- 22. Cambiar la base de datos predeterminada para un inicio de sesión de SQL Azure
- 23. Uso de ACS en la ranura de Azure Staging
- 24. ¿es posible ver archivos de proyecto en Windows Azure?
- 25. ¿Es posible utilizar la API de GHC de modificar un programa durante la compilación de ella?
- 26. Web.config alterado (drásticamente) durante la implementación de Azure
- 27. ¿Es posible ejecutar código nativo de C++ en Windows Azure?
- 28. ¿Es posible cambiar la fuente tooltip ToolStripMenuItem?
- 29. ¿Es posible cambiar dinámicamente el espacio de nombres a ServiceContract durante el tiempo de ejecución?
- 30. ¿Es posible cambiar la dirección de la barra de clasificación?
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. –
Thx muchachos. Parece un entorno separado para la prueba en ese momento. No demasiado, por favor, sobre todo a un costo. – Andiih
+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". –