4

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

Мreover 当我改变一些 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>

有人知道会发生什么吗?

谢谢

4

2 回答 2

0

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

IE,将其添加到您的 CSDef:

更多详细信息:http: //blogs.msdn.com/b/windowsazure/archive/2011/01/04/responding-to-role-topology-changes.aspx

于 2014-04-07T21:20:53.170 回答
0

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

<Startup>
  <Task commandLine="startup.cmd" executionContext="elevated" taskType="background"></Task>
</Startup>
于 2012-12-19T16:33:44.570 回答