Múltiples instancias de sitio en un rol web con diferentes web.config

Me gustaría implementar mi aplicación MVC3 en Azure usando varios sitios físicos de la misma aplicación. Es genial poder usar el elemento de sitios en ServiceDefinition.csdef para hacer esto.

Pero quiero que cada uno de los sitios se conecte a una base de datos diferente. La cadena de conexión está en web.config. ¿Hay alguna manera fácil de hacer esto, además de iniciar sesión en la máquina virtual y cambiarla a mano?

preguntado el 03 de mayo de 12 a las 16:05

2 Respuestas

Puede registrar una tarea de inicio para ir y modificar/mover los archivos web.config cuando se inicia la máquina virtual. ¡Es un poco complicado, pero más limpio que hacerlo a mano!

http://msdn.microsoft.com/en-us/library/windowsazure/gg456327.aspx

contestado el 03 de mayo de 12 a las 17:05

Las máquinas virtuales de Windows Azure no se conservan, por lo que no se sugiere hacer nada por RDP a la máquina virtual. Además, cuando la VM esté lista y el rol ya esté listo para realizar cualquier cambio en web.config, no estará disponible para la aplicación IIS. Lo mejor que puede hacer es crear una solución directamente en su función. - AvkashChauhan

@Avkash ¿Quiere decir obtener la cadena de conexión de otra fuente en el código? - RolandG

[Respuesta a su comentario] - Con Windows Azure (en realidad con cualquier solución PaaS) La primera regla general es que cuando se inicia el rol, toda la configuración debe estar lista y la segunda regla general es que no se debe hacer nada en VM a través de RDP acceso, porque los cambios no persistirán. Debido a esta configuración requerida, ya sea implementada en Azure Package o modificada directamente desde la tarea de inicio.

[Respuesta a su pregunta] En Windows Azure, puede ejecutar varios sitios dentro de una función web; sin embargo, todos deben compartir el mismo web.config principal porque se ejecutan varios sitios dentro de una función web. Aquí sabrás como podrás hacerlo: http://msdn.microsoft.com/en-us/library/windowsazure/gg433110.aspx

Ahora, como su requisito es tener varias bases de datos, en su web.config puede agregar varias cadenas de conexión de bases de datos como se muestra a continuación: $

 <ConnectionString>
 <Add name="DB1" connectionString="Data Source=DS1.........."/>
 <Add name="DB2" connectionString="Data Source=DS2.........."/>
 </ConnectionString>

una vez que tenga lo anterior, en su código ASP.NET puede enumerar estas cadenas de conexión y usarlas con sitios específicos como se describe en el ejemplo dado:

http://www.dotnetspark.com/kb/780-how-to-use-multiple-database-connection.aspx

Finalmente, puede agregar varios sitios con su función web durante el desarrollo y también puede tener una conexión de base de datos específica especificada en web.config, por lo que no creo que sea necesario usar la tarea de inicio o hacer algo en VM, a menos que me falte algo. aquí.

contestado el 06 de mayo de 12 a las 05:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.