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. Обычно распределенная сборка мусора использует счетчики ссылок и проверку связи для управления.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)

Применяется к