LifetimeServices LifetimeServices LifetimeServices LifetimeServices Class

定義

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

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

#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
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 'Main

<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 'Run
   
End Class 'Server

注釈

分散ガベージ コレクションは、サーバー アプリケーションの有効期間を制御して、有効期限が切れたときに、それらを削除します。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() LifetimeServices() LifetimeServices()

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

プロパティ

LeaseManagerPollTime LeaseManagerPollTime LeaseManagerPollTime LeaseManagerPollTime

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

LeaseTime LeaseTime LeaseTime LeaseTime

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

RenewOnCallTime RenewOnCallTime RenewOnCallTime 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 SponsorshipTimeout SponsorshipTimeout SponsorshipTimeout

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

メソッド

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

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

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

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

(Inherited from Object)
GetType() GetType() GetType() GetType()

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

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

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

(Inherited from Object)
ToString() ToString() ToString() ToString()

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

(Inherited from Object)

セキュリティ

SecurityPermission
インフラストラクチャ コードを操作します。for operating with infrastructure code. 要求値: LinkDemand;アクセス許可の値。 InfrastructureDemand value: LinkDemand; Permission Value: Infrastructure

適用対象