Azure RoleEnvironment.更改事件不会';工作区内的t触发器
所以,我有一个Azure项目,有3个WebRoles和1个WorkerRole。在每个项目中,我都订阅了RoleEnvironment.Changing和RoleEnvironment.Changed事件。在WebRole中,一切正常,但在WorkerRole中,这些事件不希望触发 М或当我更改某些WebRole的设置时,WorkerRole每次都在循环使用 WorkerRole在内部运行另一个x86进程,并在启动时编写脚本 使用Azure SDK 1.7Azure 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
<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角色的设置时,另一个角色对此没有反应。我完全删除了此块。
没有帮助。。