LifetimeServices Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Steruje the.NET usługami okresu istnienia komunikacji zdalniej.
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
- Dziedziczenie
-
LifetimeServices
- Atrybuty
Przykłady
#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;
public class Server {
public static void Main() {
Server myServer = new Server();
myServer.Run();
}
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
Uwagi
Rozproszone odzyskiwanie pamięci jest odpowiedzialne za kontrolowanie okresów istnienia aplikacji serwera oraz usuwanie ich, gdy ich okresy istnienia wygasły. Tradycyjnie rozproszone odzyskiwanie pamięci używa odwołań i polecenia ping do kontroli. Działa to dobrze, gdy istnieje kilka klientów na obiekt, ale nie działa dobrze, gdy istnieje tysiące klientów na każdy obiekt. Usługa okresu istnienia może przyjąć funkcję tradycyjnego rozproszonego modułu odśmiecającego pamięci i skaluje się dobrze, gdy liczba klientów wzrośnie.
Usługa okresu istnienia kojarzy dzierżawę z każdym obiektem aktywowanym zdalnie. Po wygaśnięciu dzierżawy obiekt zostanie usunięty.
Uwaga
Ta klasa sprawia, że zapotrzebowanie na łącza. Wyjątek SecurityException jest zgłaszany, jeśli bezpośredni obiekt wywołujący nie ma uprawnień do infrastruktury. Aby uzyskać więcej informacji, zobacz Link Demands (Żądania linków ).
Konstruktory
LifetimeServices() |
Przestarzałe.
Tworzy wystąpienie klasy LifetimeServices. |
Właściwości
LeaseManagerPollTime |
Pobiera lub ustawia interwał czasu między każdą aktywacją menedżera dzierżawy w celu wyczyszczenia wygasłych dzierżaw. |
LeaseTime |
Pobiera lub ustawia początkowy przedział czasu dzierżawy dla elementu AppDomain. |
RenewOnCallTime |
Pobiera lub ustawia czas, przez który dzierżawa jest rozszerzana za każdym razem, gdy wywołanie pojawia się w obiekcie serwera. |
SponsorshipTimeout |
Pobiera lub ustawia czas, przez jaki menedżer dzierżawy czeka na zwrot sponsora z czasem odnowienia dzierżawy. |
Metody
Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |