StatusCheckイベントを使用してステータスをBusyに設定すると、インスタンスはロードバランサからの要求をそれ以上受信しません。たとえば、キューを使用して、しばらくビジー状態にするメッセージをインスタンスに送信するコードを記述することができます。
public override bool OnStart()
{
RoleEnvironment.StatusCheck += RoleEnvironmentStatusCheck;
return base.OnStart();
}
// Use the busy object to indicate that the status of the role instance must be Busy
private volatile bool busy = true;
private void RoleEnvironmentStatusCheck(object sender, RoleInstanceStatusCheckEventArgs e)
{
If (this.busy)
{
// Sets the status of the role instance to Busy for a short interval.
// If you want the role instance to remain busy, add code to
// continue to call the SetBusy method
e.SetBusy();
}
}
参考:http://msdn.microsoft.com/en-us/library/microsoft.windowsazure.serviceruntime.roleenvironment.statuscheck.aspx
あなたは、単に(WindowsのAzureのポータルまたはリモートデスクトップを使用して)あなたのインスタンスを再起動することができるほか。
Webサーバーが本質的に並列であるとすれば、インスタンスが1つ少なくなることとの違いはほとんどありません。要求を調整するためのグローバル変数を持つ可能性があるため、複数のインスタンスを持つことに関連する問題が発生する可能性が高くなります。 –