2012-02-08 1 views
1

우리는 여러 사이트를 호스팅하는 WebRole을 보유하고 있습니다. 사이트 별 작업을 통해 각 사이트에 대한 시작 작업을 수행했습니다. 문제는 첫 번째 사이트의 시작 작업 (섹션에 나열된 첫 번째 사이트) 만 배포 중에 실행할 수 있다는 것입니다.Azure : webrole에서 각 사이트 항목에 대한 시작 작업을 실행하는 방법?

WebRole 인스턴스의 첫 번째 사이트 (또는 웹 역할 정의의 웹 사이트)가 \ drive 폴더 : \ approot 폴더에 복사됩니다. 다른 모든 사이트는 [drive] : \ sites \ (초기 위치는 다른 위치 였기 때문에 향후 변경 될 수 있음)로 복사됩니다.

[drive] : \ sites \에있는 각 사이트의 배치 파일을 실행할 수있는 간단한 방법이 있습니까?

추가 사이트를 배치 할 정확한 경로를 제공 할 수있는 RoleEnvironment 개체 또는 xPath 값 (예 : http://msdn.microsoft.com/en-us/library/windowsazure/hh404006.aspx)이있는 트릭이 있습니까?

ATM 우리는 모두가 해키 및 IMO, 불안정, 2 가지 옵션이 있습니다 : IIS 구성에서 1.Read 데이터 및 주요 시작 작업의 입력으로 사용할 명시 적으로 명명 된 스크립트 2.Scan/사이트/발견하면 그것을 실행 .

답변

1

Startup Task은 역할을위한 것이지 사이트를위한 것이 아닙니다. RoleEntryPoint 하위 항목을 사용하여 길을 찾아서 OnStart 메서드를 사용하여 사이트별로 시작 작업을 수동으로 실행해야합니다.

사이트 디렉토리를 찾으려면 this question을 확인하십시오. 답은 완전하게 작업을 다루고 있습니다. 내가 사용하기 때문에 생산에 100 % 신뢰할 만하다.

+0

신뢰할 수 있습니다. RoleModel.xml이 이동 될 때까지 XML 네임 스페이스 또는 구조가 변경됩니다. 어쨌든 IIS의 실제 구성을 읽는 것보다 더 쉽고 더러워 보입니다. 힌트를 주셔서 감사합니다 –

+0

RoleModel.XML 및 구조는 SDK 버전에 바인딩됩니다. 그래서 유일한 문제는 새 SDK가 제공되고이 새 SDK가 **이 ** 파일에 ** 변경 ** 변경 사항이있을 때 프로젝트를 업그레이드하는 것입니다. 그러나 이것은 쉽게 유지되고 잡힐 수 있습니다. – astaykov