Question

J'essaie de créer un package de déploiement Azure à l'aide de CSPACK sur mon serveur de construction pour le déploiement de Devfabric (CSRUN) sur un serveur de test.Cspack copie consciencieusement les fichiers de rôle Web des fichiers binaires et des fichiers dans le package CSX, mais il nécessite également un chemin "SitePhysicalDirectory" pour chaque rôle Web, incorporé dans un fichier "Rolemodel.xml".Ce répertoire doit exister à l'heure du paquet.

Lors du déploiement, CSRun établit un site IIS qui pointe directement sur le chemin SitephysicalDirectory et semble ignorer complètement les fichiers binaires Web emballés dans le package CSX.Inutile de dire que le déploiement de test sur une machine différente ne fonctionne pas.

Est-ce que je manque quelque chose ici?Pourquoi CSPACK / CSRUN ne peut-il pas définir le chemin physique dans IIS à l'approbation dans le paquet CSX?Quel est le but d'un package CSX si les fichiers binaires emballés ne sont pas utilisés?Que font SitesphysicalDirectories dans un déploiement d'azur de production?

Était-ce utile?

La solution

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.

Autres conseils

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top