Pregunta

Estoy tratando de construir un paquete de despliegue de Azure usando CSPCKAn en mi servidor de compilación para la implementación de Devfabric (CSRUN) en un servidor de prueba.CSPSPACH Deractamente copia los binarios y archivos de la función web en el paquete CSX, pero también requiere una ruta de 'SitePhysicalDirectory' para cada función web, que está incrustada en un archivo 'ROLEMODEL.xml'.Este directorio debe existir en el momento del paquete.

Al despliegue, CSRUN configura un sitio IIS que apunta directamente a la ruta del SitePhysicalDirectory y parece ignorar completamente los binarios de la función web empaquetados en el paquete CSX.No hace falta decir que la implementación de la prueba en una máquina diferente no funciona.

¿Estoy perdiendo algo aquí?¿Por qué CSPCK / CSRUN no se puede configurar la ruta física en IIS a la aprobación en el paquete CSX?¿Cuál es el propósito de un paquete CSX si los binarios empaquetados no se utilizan?¿Qué hacen SitePhysicalDirectorias en una implementación de la producción de Azure?

¿Fue útil?

Solución

I think part of this has to do with the addition of Full IIS. It used to be the case that your approot directory in Windows Azure was for both the RoleEntryPoint process and the IIS WAS Host (one in the same). However, with full IIS, you would have w3wp.exe running your web code and the WaWorker process executing your RoleEntryPoint.

The decision was made to effectively copy the entire website (which also has the WebRole.cs RoleEntryPoint) to a new directory and root full IIS there. As such, you will notice that your packaging for Web Roles actually contains a copy of your code twice. Once, for the website and once for the WebRole.cs RoleEntryPoint. Only your RoleEntryPoint is executed now out of approot. I don't remember all the technical reasons why this occurred, but it might have been easier/safer to copy the website out rather than risk missing a dependency.

Otros consejos

I'm beginning to think the answer to all of those questions is "Because cspack/csrun are poorly-designed piles of garbage that should never have shipped". They seem to be built for Visual Studio support and nothing else.

Manually updating the RoleModel.xml file to set the physicalPath attribute to 'approot' (it's relative to the RoleModel.xml location) after packaging appears to be a viable workaround.

I would think that sitePhysicalDirectory should be set as the folder under AppRoot in your csx package, not the source of your web role binaries & files.

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