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.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() 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

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