2012-12-19 9 views
4

그래서 3 개의 WebRoles 및 1 개의 WorkerRole이있는 Azure 프로젝트가 있습니다. 각 프로젝트에는 RoleEnvironment.Changing 및 RoleEnvironment.Changed 이벤트에 대한 구독이 있습니다. WebRole에서는 모든 것이 정상이지만 WorkerRole에서 이러한 이벤트는 트리거하지 않으려 고합니다. 나는 약간 WebRole의 설정을 변경할 때RoleEnvironment.Changing 이벤트가 WorkerRole에서 트리거되지 않음

Мoreover, WorkerRole는 매번

WorkerRole이

푸른 SDK 1.7을 사용하는 시작에 또 다른 86의 내부 였는지를하고 스크립트를 실행 재활용됩니다

<WorkerRole name="MyService" vmsize="Medium" enableNativeCodeExecution="true"> 
    <Startup> 
     <Task commandLine="startup.cmd" taskType="simple" executionContext="elevated" /> 
    </Startup> 
    <Runtime executionContext="elevated" /> 
    <Imports> 
     <Import moduleName="Diagnostics" /> 
     <Import moduleName="RemoteAccess" /> 
    </Imports> 
    <Endpoints> 
     <InputEndpoint name="Endpoint1" protocol="http" port="8081" /> 
     <InputEndpoint name="TCPEndpoint" protocol="tcp" port="10101" localPort="10100" /> 
     <InternalEndpoint name="InternalEndpoint" protocol="http" /> 
    </Endpoints> 
    <ConfigurationSettings> 
     <Setting name="StorageConnectionString" /> 
     <Setting name="TransactionLogsBlobContainer" /> 
    </ConfigurationSettings> 
    <LocalResources> 
     <LocalStorage name="DiagnosticStore" cleanOnRoleRecycle="false" sizeInMB="8192" /> 
    </LocalResources> 
    </WorkerRole> 

아무도 무슨 일이 벌어 질 지 상상해 보지 않니? 나는 비슷한 문제를 가지고 있었고, 에서 시작 작업의 taskType을 변경하면 내 문제를 해결 배경 에 상승 것으로 나타났습니다

+0

이 분명있을 수 있지만, 노동자의 변경 경우에, true로 RoleEnvironmentChangingEventArgs.Cancel을 설정하는? 그렇다면 강제로 작업자가 재활용해야합니다. 모든 역할에 적용 할 수있는 서비스 구성 파일은 하나뿐이므로 변경 사항이 웹 역할과 관련된 구성에만 적용되는 경우에도 작업자는 변경 및 변경 이벤트를받습니다. – sebastus

+0

문제는 이러한 이벤트가 로그에 따라 작업자 역할에서 트리거되지 않는다는 것입니다. 예, 하나의 파일이 있지만 한 웹 역할에 대한 설정을 변경하면 다른 사람이 이에 반응하지 않습니다. – Artem

답변

0

감사합니다. 나는 거기서 시작하는 것이 좋습니다.

<Startup> 
    <Task commandLine="startup.cmd" executionContext="elevated" taskType="background"></Task> 
</Startup> 
+0

나는이 블록을 전혀 제거하지 않았습니다. ' <작업 커맨드 =이 taskType = "간단한"의 ExecutionContext가 = "상승" "STARTUP.CMD"/> ' 도움이되지 않았다 .. – Artem

관련 문제