문제

DevFabric Deployment (CSRUn)를 위해 Test Server에 대한 Build Server의 CSPACK를 사용하여 Azure Deployment 패키지를 작성하려고합니다.CSPACK는 웹 역할 바이너리 및 파일을 CSX 패키지로 의무적으로 복사하지만 'rolemodel.xml'파일에 내장 된 각 웹 역할에 대한 'sitephysicalDirectory'경로도 필요합니다.이 디렉토리는 패키지 시간에 있어야합니다.

배치시 CSRUN은 사이트 시야의 디렉토리 경로로 직접 가리키는 IIS 사이트를 설정하고 CSX 패키지에 패키지 된 웹 역할 바이너리를 완전히 무시하는 것으로 나타납니다.말할 필요도없이, 다른 기계에 대한 테스트 배포가 작동하지 않습니다.

여기에 뭔가를 놓치고 있습니까?CSPACK / CSRUN이 CSX 패키지의 Approot에 IIS에서 물리적 경로를 설정할 수없는 이유는 무엇입니까?CSX 패키지의 목적은 포장 된 바이너리가 사용되지 않으면?SiteShiSicalDirectory가 생산 Azure 배포에서 무엇을 할 것인가?

도움이 되었습니까?

해결책

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.

다른 팁

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top