Compartilhar via


RoleEnvironment.Changing Event

 

Occurs before a change to the service configuration is applied to the running instances of a role.

Namespace:   Microsoft.WindowsAzure.ServiceRuntime
Assembly:  Microsoft.WindowsAzure.ServiceRuntime (in Microsoft.WindowsAzure.ServiceRuntime.dll)

Syntax

public static event EventHandler<RoleEnvironmentChangingEventArgs> Changing
public:
event EventHandler<RoleEnvironmentChangingEventArgs^>^ Changing {
    static void add(EventHandler<RoleEnvironmentChangingEventArgs^>^ value);
    static void remove(EventHandler<RoleEnvironmentChangingEventArgs^>^ value);
}
static member Changing : IEvent<EventHandler<RoleEnvironmentChangingEventArgs>,
    RoleEnvironmentChangingEventArgs>
Public Shared Event Changing As EventHandler(Of RoleEnvironmentChangingEventArgs)

Remarks

The Changing event and the Changed event are used together to identify and manage configuration changes to the service model. By using the Changing event, an instance can respond to a configuration change in one of the following ways:

  • Accept the configuration change while it is running, without going offline.

  • Set the Cancel property of RoleEnvironmentChangingEventArgs to true to take the instance offline, apply the configuration change, and then bring the instance back online.

By using the Cancel property, you can ensure that the instance proceeds through an orderly shutdown sequence and is taken offline before the configuration change is applied. During the shutdown process, Windows Azure raises the Stopping event, and then runs any code in the OnStop method.

The following code example shows how to apply the configuration changes after the role instances are restarted:

public override bool OnStart()
{
   RoleEnvironment.Changing += RoleEnvironmentChanging;

   return base.OnStart();
}

private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e) 
{
   // Implements the changes after restarting the role instance
   if ((e.Changes.Any(change => change is RoleEnvironmentConfigurationSettingChange))) 
   {
      e.Cancel = true;
   }
}

This event occurs after the change has been submitted to Windows Azure but before the changes have been applied to each running role instance.

See Also

RoleEnvironmentConfigurationSettingChange
RoleEnvironment Class
Microsoft.WindowsAzure.ServiceRuntime Namespace

Return to top