Azure RoleEnvironment.更改事件不会';工作区内的t触发器

Azure RoleEnvironment.更改事件不会';工作区内的t触发器,azure,azure-worker-roles,Azure,Azure Worker Roles,所以,我有一个Azure项目,有3个WebRoles和1个WorkerRole。在每个项目中,我都订阅了RoleEnvironment.Changing和RoleEnvironment.Changed事件。在WebRole中,一切正常,但在WorkerRole中,这些事件不希望触发 М或当我更改某些WebRole的设置时,WorkerRole每次都在循环使用 WorkerRole在内部运行另一个x86进程,并在启动时编写脚本 使用Azure SDK 1.7 <WorkerRole name

所以,我有一个Azure项目,有3个WebRoles和1个WorkerRole。在每个项目中,我都订阅了RoleEnvironment.Changing和RoleEnvironment.Changed事件。在WebRole中,一切正常,但在WorkerRole中,这些事件不希望触发

М或当我更改某些WebRole的设置时,WorkerRole每次都在循环使用

WorkerRole在内部运行另一个x86进程,并在启动时编写脚本

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

有人知道会发生什么吗


谢谢

我遇到了类似的问题,发现将启动任务的
任务类型
从提升到后台解决了我的问题。我建议从那里开始

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

对于工作者角色,您必须定义一个内部端点(即使您实际上没有使用它),以便获取某些事件

IE,将此添加到您的CSDef:


此处的更多详细信息:

这可能是显而易见的,但在worker的更改事件中,您是否将RoleEnvironmentChangingEventArgs.Cancel设置为true?如果是这样,这将迫使工人进行回收。只有一个服务配置文件-适用于所有角色,因此即使更改仅应用于与web角色相关的配置,工作人员也会获得更改和更改的事件。问题是,根据日志,这些事件不会在工作人员角色中触发是的,有一个文件,但是,当我更改一个web角色的设置时,另一个角色对此没有反应。我完全删除了此块。
没有帮助。。