セールス: 1-800-867-1380

RoleEnvironment.Changing イベントを使用する

更新日: 2014年10月

Changing イベントによって、ロール インスタンスが構成の変更に反応する方法を管理することができます。Changing イベントを使用することで、インスタンスは次の方法のいずれかで構成の変更に反応できます。

  • インスタンスは、実行中にオフラインになることなく、構成の変更を受け付けることができます。

  • インスタンスは、Changing イベントを取り消すことができます。その場合、Azure がインスタンスをオフラインにし、構成の変更を適用して、インスタンスを再びオンラインに戻します。

Changing イベントを取り消すことにより、構成の変更が適用される前に、インスタンスが整然とシャットダウン処理を進め、オフラインになることを保証できます。シャットダウン処理中に、Azure では Stopping イベントが発生し、OnStop メソッドのコードが実行されます。

noteメモ
Changing イベントを受け付けるか取り消すかは、一定時間内に決定する必要があります。イベント ハンドラーが適切なタイミングで制御を戻せることを確認します。

次の場合は、Changing イベントを取り消してもかまいません。

  • ロール インスタンスが、実行中の構成変更をサポートせず、変更を適用するには再利用が必要な場合。

  • ロール インスタンスが、構成の変更によって中断できない作業を実行中で、変更を適用する前にシャットダウン処理を進める必要がある場合。

RoleEnvironmentChangingEventArgs クラスには、インスタンスにこれから適用される構成変更のコレクションを返す Changes プロパティがあります。このコレクションのオブジェクトは次のいずれかです。

  • RoleEnvironmentConfigurationSettingChange クラスは、構成設定の値に対する変更を表します。その ConfigurationSettingName プロパティは、変更される構成設定の名前を返します。

  • RoleEnvironmentTopologyChange クラスは、サービスのトポロジに対する変更を表します。トポロジの変更は、ロール インスタンスの追加または削除です。その RoleName プロパティは、インスタンス数が変更されるロールの名前を返します。

noteメモ
変更される構成設定の名前は確認できますが、Changed イベントが発生するまで、新しい値にアクセスすることはできません。

  1. 構成の変更を処理しているソース ファイルを開きます。

  2. プロジェクトが Microsoft.WindowsAzure.ServiceRuntime.dll ファイルを参照しており、次の using ステートメントがファイルに追加されていることを確認します。

    using Microsoft.WindowsAzure.ServiceRuntime;
    
  3. OnStart メソッドに次のコードを追加して、イベント ハンドラーを指定します。

    
    public override bool OnStart()
    {
       RoleEnvironment.Changing += RoleEnvironmentChanging;
                
       return base.OnStart();
    }
    
  4. ソース ファイルに、次のイベント ハンドラー メソッドを追加します。

    
    private void RoleEnvironmentChanging(object sender, RoleEnvironmentChangingEventArgs e)
    {
       // Add code for handling changes
    }
    
  5. ファイルを保存します。

関連項目

この情報は役に立ちましたか。
(残り 1500 文字)
フィードバックをいただき、ありがとうございました
表示:
© 2014 Microsoft