ReliableSessionBindingElement Třída

Definice

Představuje element vazby, který může vytvořit odesílající a přijímající kanály požadované pro spolehlivou relaci mezi koncovými body.

public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement
public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ReliableSessionBindingElement = class
    inherit BindingElement
type ReliableSessionBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Implements IPolicyExportExtension
Dědičnost
ReliableSessionBindingElement
Implementuje

Příklady

Lze ReliableSessionBindingElement ji přidat do libovolné vlastní vazby. To se provádí pomocí následujících konfiguračních prvků.

<bindings>
    <customBinding>
        <binding configurationName="ReliabilityHTTP">
            <reliableSession/>
        </binding>
    </customBinding>
</bindings>

Následující ukázkový kód ukazuje, jak se používá ReliableSessionBindingElement v kódu.

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open()

    ' The service can now be accessed.
    Console.WriteLine("The service is ready.")
    Console.WriteLine("Press <ENTER> to terminate service.")
    Console.WriteLine()
    Console.ReadLine()

    ' Close the ServiceHostBase to shutdown the service.
    serviceHost.Close()
End Using

Poznámky

Poskytuje relace a volitelně poskytuje seřazené doručování zpráv. Tato implementovaná relace může překračovat zprostředkovatele SOAP a dopravy.

Každý prvek vazby představuje krok zpracování při odesílání nebo přijímání zpráv. Za běhu vytvářejí vazbové prvky objekty pro vytváření kanálů a naslouchací procesy, které jsou nezbytné k sestavení zásobníků odchozích a příchozích kanálů potřebných k odesílání a přijímání zpráv. Poskytuje ReliableSessionBindingElement volitelnou vrstvu v zásobníku, která může vytvořit spolehlivou relaci mezi koncovými body a nakonfigurovat chování této relace.

Poskytuje ReliableSessionBindingElement se standardní vazby v následující tabulce.

Binding Výchozí
NetTcpBinding Vypnuto
WSHttpBinding Vypnuto
WSDualHttpBinding Zapnuto (povinné)

Konstruktory

Name Description
ReliableSessionBindingElement()

Inicializuje novou instanci ReliableSessionBindingElement třídy.

ReliableSessionBindingElement(Boolean)

Inicializuje novou instanci ReliableSessionBindingElement třídy, která určuje, zda doručení zprávy musí zachovat pořadí, ve kterém jsou zprávy odeslány.

Vlastnosti

Name Description
AcknowledgementInterval

Získá nebo nastaví interval, po který cíl čeká před odesláním potvrzení do zdroje zpráv ve spolehlivých kanálech vytvořených továrnou.

FlowControlEnabled

Získá nebo nastaví hodnotu, která označuje, zda spolehlivá relace má povoleno řízení toku.

InactivityTimeout

Získá nebo nastaví interval času, který služba zůstává neaktivní před zavřením.

MaxPendingChannels

Získá nebo nastaví největší počet kanálů, které mohou být čekající během spolehlivé relace.

MaxRetryCount

Získá nebo nastaví maximální počet, kolikrát se zpráva pokusí přenést během spolehlivé relace.

MaxTransferWindowSize

Získá nebo nastaví největší počet zpráv, které mohou existovat v vyrovnávací paměti pro odesílání nebo příjem vyrovnávací paměti.

Ordered

Získá nebo nastaví hodnotu, která určuje, zda doručení zprávy musí zachovat pořadí, ve kterém se zprávy odesílají.

ReliableMessagingVersion

Získá nebo nastaví verzi WS-ReliableMessaging určené element vazby.

Metody

Name Description
BuildChannelFactory<TChannel>(BindingContext)

Vrátí továrnu, která vytvoří kanál zadaného typu, který podporuje spolehlivou relaci.

BuildChannelListener<TChannel>(BindingContext)

Vrátí naslouchací proces, který přijímá kanál zadaného typu, který podporuje spolehlivou relaci.

CanBuildChannelFactory<TChannel>(BindingContext)

Vrátí hodnotu, která určuje, jestli je možné vytvořit objekt pro vytváření kanálů pro kanál a kontext za předpokladu, že podporuje spolehlivou relaci.

CanBuildChannelListener<TChannel>(BindingContext)

Vrátí hodnotu, která určuje, jestli je možné sestavit naslouchací proces kanálu a kontextu za předpokladu, že podporuje spolehlivou relaci.

Clone()

Vytvoří kopii aktuálního prvku vazby relace spolehlivé relace.

Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetProperty<T>(BindingContext)

Získá vlastnost zadaného typu z jeho kontextu vazby.

GetType()

Získá Type aktuální instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ToString()

Vrátí řetězec, který představuje aktuální objekt.

(Zděděno od Object)

Explicitní implementace rozhraní

Name Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Mapuje informace obsažené v prvku spolehlivé vazby relace do elementů WSDL, které umožňují vzdálenému koncovému bodu přistupovat ke službě pomocí spolehlivé relace.

Platí pro