Ejemplo n.º 1
0
        public override void OnStop()
        {
            try
            {
                Logger.Info("Raven stopping...");

                try
                {
                    Environment.SetEnvironmentVariable(RavenDriveConfiguration.AzureDriveEnvironmentVariableName, null, EnvironmentVariableTarget.Machine);

                    if (!RoleEnvironment.IsEmulated)
                    {
                        var driveConfiguration = RavenDriveConfiguration.Get();
                        // Unmount to unlock the blob
                        AzureCloudDrive.UnmountDrive(driveConfiguration.CloudContainerName,
                                                     driveConfiguration.CloudDriveName);
                    }
                }
                catch (Exception ex)
                {
                    Logger.WarnException("Cloud drive couldn't be unmounted", ex);
                }

                _source.Cancel(true);
                base.OnStop();
            }
            catch (Exception ex)
            {
                Logger.FatalException("Raven couldn't stop properly", ex);
            }
        }