2012-06-15 9 views
5

Después de implementar en Azure, seguí recibiendo errores del servidor: la aplicación no se ejecutaba. Así que hice un escritorio remoto en la instancia y encontré que el web.config fue completamente revisado ... ¿qué está pasando? Pensé que web.config estaba empaquetado como está? En cambio, toda la configuración ha sido reemplazada. Cuando reemplazo la versión "nueva" con la configuración original, sin alteraciones y correcta, mi aplicación funciona según lo previsto.Web.config alterado (drásticamente) durante la implementación de Azure

En primer lugar, ¿qué está pasando aquí? ¿Qué estoy haciendo mal? De esta manera puedo entender y no replicar esto en el futuro.

En segundo lugar, ¿cómo puedo detener este comportamiento? Quiero implementar el web.config original, no un impostor arbitrario. ¡Gracias!

+0

¿Podría publicar algunos ejemplos de las dos versiones? ¿Tiene superposiciones web.config para depuración/versión? ¿Tiene configuradas las transformaciones de parámetros? (algo así como http://msdn.microsoft.com/en-us/library/dd465326%28VS.100%29.aspx) –

+0

Sí, traté de publicar una imagen de las configuraciones, pero mi "reputación" es demasiado baja. No tengo superposiciones o transformaciones (especialmente debido a este problema). La imagen (de la misma pregunta) está aquí: http://social.msdn.microsoft.com/Forums/en-US/windowsazuredevelopment/thread/2b5d705e-ffd5-4022-b32d-c67c0fe518cf. –

+0

¿podría extraer el paquete azul para verificar que el cambio ocurra durante la construcción/empaque? Si compila + ejecuta localmente las mismas configuraciones en el emulador de azure, ¿el archivo permanece intacto? –

Respuesta

2

Según la sugerencia de dunnry para descomprimir el archivo cskpkg, me di cuenta de que el web.config ni siquiera estaba empaquetado, por lo que Azure debe haber estado creando uno básico por necesidad (¡sin advertirme!?!?). Después de algunas investigaciones, me encontré con esta pepita (de another StackOverflow question addressing deployment issues):

Resulta que el archivo web.config aún no se estaba incluido en el paquete de implementación. De alguna manera, BuildAction del archivo web.config se cambió de Content a None.

Después de cambiar BuildAction a "Contenido" mi implementación ahora funciona como se esperaba.

2

A menos que tenga una transformación especificada (utilizando normal, built-in web.config.debug y .release), no transforma ninguna configuración de usuario. En un momento dado, sí transformó la configuración de machineKey de modo que sus roles web funcionarían en un escenario de granja web (nada funcionaría con el equilibrador de carga si no fuera así). Estoy seguro de que todavía lo hace, pero podría estar haciéndolo ahora en el nivel machine.config (dejando su web.config solo). No he verificado esto en algún momento, así que no estoy seguro de qué es lo que hace ahora.

Una manera fácil de comprobar qué se implementará es simplemente empaquetar su cskpkg y abrirlo como archivo .zip. Dentro habrá otro archivo que tiene su nombre de rol web en él. Ábralo de nuevo como .zip y debería ver todo su sitio web empaquetado. Compruebe el archivo web.config y asegúrese de que sea lo que necesita. De lo contrario, publique aquí lo que cree que no debe cambiarse.

+0

Gracias. Cuando descomprimo he cskpkg como sugieres, veo que el archivo web.config está completamente ausente ** del directorio 'sites/0'. ¿Alguna idea de lo que está pasando aquí? –

+2

Ahhh ... encontró la solución. Usando su sugerencia como punto de partida y dándose cuenta de que el archivo web.config desapareció, encontré este nugget ("De alguna manera, el archivo BuildAction del archivo web.config cambió de Content a None") de [esta pregunta] (http: // stackoverflow .com/questions/9570016/azure-asp-net-mvc-web-config-deployment-issue). ¡Ahora, la implementación está funcionando como se esperaba! Gracias de nuevo. –

Cuestiones relacionadas