ReliableSessionBindingElement Klass

Definition

Representerar bindningselementet som kan producera de sändnings- och mottagningskanaler som krävs för en tillförlitlig session mellan slutpunkter.

public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ReliableSessionBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Implements IPolicyExportExtension
Arv
ReliableSessionBindingElement
Implementeringar

Exempel

ReliableSessionBindingElement Kan läggas till i alla anpassade bindningar. Detta görs med hjälp av följande konfigurationselement.

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

Följande exempelkod visar hur du använder ReliableSessionBindingElement i kod.

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

Kommentarer

Tillhandahåller sessioner och eventuellt ordnad meddelandeleverans. Den här implementerade sessionen kan korsa SOAP och transportförmedlare.

Varje bindningselement representerar ett bearbetningssteg när meddelanden skickas eller tas emot. Vid körning skapar bindningselement de kanalfabriker och lyssnare som krävs för att skapa utgående och inkommande kanalstackar som krävs för att skicka och ta emot meddelanden. Tillhandahåller ReliableSessionBindingElement ett valfritt lager i stacken som kan upprätta en tillförlitlig session mellan slutpunkter och konfigurera beteendet för den här sessionen.

ReliableSessionBindingElement tillhandahålls på standardbindningarna i följande tabell.

Binding Standardinställning
NetTcpBinding Av
WSHttpBinding Av
WSDualHttpBinding På (krävs)

Konstruktorer

Name Description
ReliableSessionBindingElement()

Initierar en ny instans av ReliableSessionBindingElement klassen.

ReliableSessionBindingElement(Boolean)

Initierar en ny instans av ReliableSessionBindingElement klassen som anger om meddelandeleveransen måste bevara den ordning i vilken meddelanden skickas.

Egenskaper

Name Description
AcknowledgementInterval

Hämtar eller anger det tidsintervall som ett mål väntar innan en bekräftelse skickas till meddelandekällan på tillförlitliga kanaler som skapas av fabriken.

FlowControlEnabled

Hämtar eller anger ett värde som anger om den tillförlitliga sessionen har flödeskontroll aktiverad.

InactivityTimeout

Hämtar eller anger ett tidsintervall som en tjänst förblir inaktiv innan den stängs.

MaxPendingChannels

Hämtar eller anger det största antalet kanaler som kan vänta under den tillförlitliga sessionen.

MaxRetryCount

Hämtar eller anger det maximala antalet gånger som ett meddelande försöker överföras under den tillförlitliga sessionen.

MaxTransferWindowSize

Hämtar eller anger det största antalet meddelanden som kan finnas i antingen sändningsbufferten eller mottagningsbufferten.

Ordered

Hämtar eller anger ett värde som anger om meddelandeleveransen måste bevara den ordning i vilken meddelanden skickas.

ReliableMessagingVersion

Hämtar eller anger den version av WS-ReliableMessaging som anges av bindningselementet.

Metoder

Name Description
BuildChannelFactory<TChannel>(BindingContext)

Returnerar en fabrik som skapar en kanal av en angiven typ som stöder en tillförlitlig session.

BuildChannelListener<TChannel>(BindingContext)

Returnerar en lyssnare som accepterar en kanal av en angiven typ som stöder en tillförlitlig session.

CanBuildChannelFactory<TChannel>(BindingContext)

Returnerar ett värde som anger om kanalfabriken kan skapas för kanalen och kontexten förutsatt att den stöder en tillförlitlig session.

CanBuildChannelListener<TChannel>(BindingContext)

Returnerar ett värde som anger om kanallyssnaren kan skapas för kanalen och kontexten förutsatt att den stöder en tillförlitlig session.

Clone()

Skapar en kopia av det aktuella tillförlitliga sessionsbindningselementet.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetProperty<T>(BindingContext)

Hämtar en egenskap av den angivna typen från dess bindningskontext.

GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Mappar informationen i det tillförlitliga sessionsbindningselementet till WSDL-elementen som gör det möjligt för en fjärrslutpunkt att komma åt tjänsten med en tillförlitlig session.

Gäller för