2012-12-19 67 views
4

因此,我有3個WebRoles和1個WorkerRole的Azure項目。在每個項目中,我都訂閱了RoleEnvironment.Changing和RoleEnvironment.Changed事件。在WebRole中一切正常,但在WorkerRole中,這些事件不想觸發。RoleEnvironment.Changing事件不會在WorkerRole中觸發

Мoreover當我改變了一些WebRole的設置,WorkerRole也回收每次

WorkerRole運行內的另一個86 proccess和腳本在啓動時

Azure的SDK 1.7使用

<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> 

有人知道會發生什麼嗎?

感謝

+0

這可能是顯而易見的,但在工作人員的變化情況下,你要爲RoleEnvironmentChangingEventArgs.Cancel爲真?如果是這樣,這迫使工人回收。只有一個服務配置文件 - 適用於所有角色,因此即使這些更改僅應用於與Web角色相關的配置,工作人員也會獲取「更改」和「已更改」事件。 – sebastus

+0

問題是根據日誌 沒有在工作角色中觸發這些事件是的,有一個文件,但是當我更改一個Web角色的設置時,另一個不會對此作出反應 – Artem

回答

0

我也有過類似的問題,發現從改變啓動任務的taskType升高背景解決我的問題。我建議從那裏開始。

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

我已經刪除了此塊 ' <任務COMMANDLINE = 「STARTUP.CMD」 任務類型= 「簡單」 的ExecutionContext = 「升高」/> ' 沒有幫助.. – Artem