LifetimeServices クラス

定義

.NET リモート処理有効期間サービスを制御します。Controls the.NET remoting lifetime services.

public ref class LifetimeServices sealed
public sealed class LifetimeServices
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class LifetimeServices
[System.Runtime.InteropServices.ComVisible(true)]
[System.Security.SecurityCritical]
public sealed class LifetimeServices
type LifetimeServices = class
[<System.Runtime.InteropServices.ComVisible(true)>]
type LifetimeServices = class
[<System.Runtime.InteropServices.ComVisible(true)>]
[<System.Security.SecurityCritical>]
type LifetimeServices = class
Public NotInheritable Class LifetimeServices
継承
LifetimeServices
属性

#using <system.dll>
#using <system.runtime.remoting.dll>
#using "service.dll"

using namespace System;
using namespace System::Runtime::Remoting;
using namespace System::Runtime::Remoting::Channels;
using namespace System::Runtime::Remoting::Channels::Http;
using namespace System::Runtime::Remoting::Lifetime;

int main()
{
   LifetimeServices::LeaseTime = TimeSpan::FromSeconds( 5 );
   LifetimeServices::LeaseManagerPollTime = TimeSpan::FromSeconds( 3 );
   LifetimeServices::RenewOnCallTime = TimeSpan::FromSeconds( 2 );
   LifetimeServices::SponsorshipTimeout = TimeSpan::FromSeconds( 1 );
   ChannelServices::RegisterChannel( gcnew HttpChannel( 8080 ) );
   RemotingConfiguration::RegisterActivatedServiceType( ClientActivatedType::typeid );
   Console::WriteLine( "The server is listening. Press Enter to exit...." );
   Console::ReadLine();
   Console::WriteLine( "GC'ing." );
   GC::Collect();
   GC::WaitForPendingFinalizers();
   return 0;
}
using System;
using System.Runtime.Remoting;
using System.Runtime.Remoting.Channels;
using System.Runtime.Remoting.Channels.Http;
using System.Runtime.Remoting.Lifetime;
using System.Security.Permissions;

public class Server {

   public static void Main() {

      Server myServer = new Server();
      myServer.Run();
   }

[SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.Infrastructure)]
   public void Run()
   {
      LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5);
      LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3);
      LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2);
      LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1);

      ChannelServices.RegisterChannel(new HttpChannel(8080), true);
      RemotingConfiguration.RegisterActivatedServiceType(typeof(ClientActivatedType));

      Console.WriteLine("The server is listening. Press Enter to exit....");
      Console.ReadLine();

      Console.WriteLine("GC'ing.");
      GC.Collect();
      GC.WaitForPendingFinalizers();
   }
}
Imports System.Runtime.Remoting
Imports System.Runtime.Remoting.Channels
Imports System.Runtime.Remoting.Channels.Http
Imports System.Runtime.Remoting.Lifetime
Imports System.Security.Permissions


Public Class Server
   
   Public Shared Sub Main()
      Dim myServer As New Server()
      myServer.Run()
   End Sub

<SecurityPermission(SecurityAction.Demand, Flags:=SecurityPermissionFlag.Infrastructure)> _ 
   Public Sub Run()
      LifetimeServices.LeaseTime = TimeSpan.FromSeconds(5)
      LifetimeServices.LeaseManagerPollTime = TimeSpan.FromSeconds(3)
      LifetimeServices.RenewOnCallTime = TimeSpan.FromSeconds(2)
      LifetimeServices.SponsorshipTimeout = TimeSpan.FromSeconds(1)
      
      
      ChannelServices.RegisterChannel(New HttpChannel(8080), True)
      RemotingConfiguration.RegisterActivatedServiceType(GetType(ClientActivatedType))
      
      Console.WriteLine("The server is listening. Press Enter to exit....")
      Console.ReadLine()
      
      Console.WriteLine("GC'ing.")
      GC.Collect()
      GC.WaitForPendingFinalizers()
   End Sub
   
End Class

注釈

分散ガベージコレクションは、サーバーアプリケーションの有効期間を制御し、有効期間が切れたときにそれらを削除する役割を担います。Distributed garbage collection is responsible for controlling the lifetimes of server applications, and for deleting them when their lifetimes have expired. 従来、分散ガベージコレクションでは、制御のために参照カウントと ping が使用されていました。Traditionally, distributed garbage collection uses reference counts and pinging for control. これは、オブジェクトごとに数千のクライアントがある場合に適していますが、各オブジェクトに数千のクライアントがある場合はうまく機能しません。This works well when there are a few clients per object, but does not work well when there are thousands of clients per each object. 有効期間サービスは、従来の分散ガベージコレクターの機能を引き受けることができ、クライアントの数が増えると適切にスケールされます。The lifetime service can assume the function of a traditional distributed garbage collector, and scales well when the number of clients increases.

有効期間サービスは、リモートでアクティブ化される各オブジェクトにリースを関連付けます。The lifetime service associates a lease with each remotely activated object. リースが期限切れになると、オブジェクトは削除されます。When the lease expires, the object is removed.

注意

このクラスは、リンク確認要求を行います。This class makes a link demand. SecurityException は、直前の呼び出し元にインフラストラクチャアクセス許可がない場合にスローされます。A SecurityException is thrown if the immediate caller does not have infrastructure permission. 詳細については、「 リンク確認要求 」を参照してください。See Link Demands for more information.

コンストラクター

LifetimeServices()
互換性のために残されています。
互換性のために残されています。

LifetimeServicesのインスタンスを作成します。Creates an instance of LifetimeServices.

プロパティ

LeaseManagerPollTime

有効期限が切れたリースをクリーンアップするリース マネージャーの、各アクティベーション間の時間間隔を取得または設定します。Gets or sets the time interval between each activation of the lease manager to clean up expired leases.

LeaseTime

AppDomain の初期リース期間を取得または設定します。Gets or sets the initial lease time span for an AppDomain.

RenewOnCallTime

サーバー オブジェクトで呼び出しがあるたびに、リースを延長する時間を取得または設定します。Gets or sets the amount of time by which the lease is extended every time a call comes in on the server object.

SponsorshipTimeout

リース マネージャーが、スポンサがリースの更新時間を返すまで待機する時間を取得または設定します。Gets or sets the amount of time the lease manager waits for a sponsor to return with a lease renewal time.

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象