Share via


RoleEntryPoint.OnStop Method ()

 

Runs code when a role instance is to be stopped.

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

Syntax

public virtual void OnStop()
public:
virtual void OnStop()
abstract OnStop : unit -> unit
override OnStop : unit -> unit
Public Overridable Sub OnStop

Remarks

Override the OnStop method to run code when the role instance is stopped. The following code example shows how to override the OnStop method:

public override void OnStop()
{ 
   try
   {
      // Add code here that runs when the role instance is to be stopped
   } 
   catch (Exception e)
   {
      Trace.WriteLine("Exception during OnStop: " + e.ToString());
      // Take other action as needed.
   }
}

Note

Code running in the OnStop method has 5 minutes to finish when it is called for reasons other than a user-initiated shutdown. After this time elapses, the process is terminated, so you must make sure that code in the OnStop method can run quickly or tolerates not running to completion.

Once the OnStop method has finished executing, the role will be stopped. If other code requires time to exit gracefully you should keep the OnStop thread busy until execution is complete.

A web role can include termination code in the ASP.NET Application_End method instead of the OnStop method. The Application_End method is called before the Stopping event is raised or the OnStop method is called. For more information about the Application_End method, see ASP.NET Application Life Cycle Overview for IIS 5.0 and 6.0 or ASP.NET Application Life Cycle Overview for IIS 7.0.

See Also

RoleEntryPoint Class
Microsoft.WindowsAzure.ServiceRuntime Namespace

Return to top