ReliableSessionBindingElement Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Stellt das Bindungselement dar, das die Sende- und Empfangskanäle erzeugen kann, die für eine zuverlässige Sitzung zwischen Endpunkten erforderlich sind.
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
- Vererbung
- Implementiert
Beispiele
Dies ReliableSessionBindingElement kann jeder benutzerdefinierten Bindung hinzugefügt werden. Dazu werden die folgenden Konfigurationselemente verwendet.
<bindings>
<customBinding>
<binding configurationName="ReliabilityHTTP">
<reliableSession/>
</binding>
</customBinding>
</bindings>
Im folgenden Beispielcode wird die Verwendung ReliableSessionBindingElement im Code veranschaulicht.
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
Hinweise
Stellt Sitzungen bereit und stellt optional die geordnete Nachrichtenübermittlung bereit. Diese implementierte Sitzung kann SOAP- und Transportintermediäre überschreiten.
Jedes Bindungselement stellt einen Verarbeitungsschritt beim Senden oder Empfangen von Nachrichten dar. Zur Laufzeit erstellen Bindungselemente die Kanalfabriken und Listener, die zum Erstellen ausgehender und eingehender Kanalstapel erforderlich sind, um Nachrichten zu senden und zu empfangen. Dies ReliableSessionBindingElement stellt eine optionale Ebene im Stapel bereit, die eine zuverlässige Sitzung zwischen Endpunkten herstellen und das Verhalten dieser Sitzung konfigurieren kann.
Dies ReliableSessionBindingElement wird in den Standardbindungen in der folgenden Tabelle bereitgestellt.
| Binding | Default |
|---|---|
| NetTcpBinding | Aus |
| WSHttpBinding | Aus |
| WSDualHttpBinding | Ein (erforderlich) |
Konstruktoren
| Name | Beschreibung |
|---|---|
| ReliableSessionBindingElement() |
Initialisiert eine neue Instanz der ReliableSessionBindingElement-Klasse. |
| ReliableSessionBindingElement(Boolean) |
Initialisiert eine neue Instanz der ReliableSessionBindingElement Klasse, die angibt, ob die Nachrichtenübermittlung die Reihenfolge beibehalten muss, in der Nachrichten gesendet werden. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| AcknowledgementInterval |
Ruft ab oder legt das Zeitintervall fest, das ein Ziel wartet, bevor eine Bestätigung an die Nachrichtenquelle in zuverlässigen Kanälen gesendet wird, die von der Factory erstellt werden. |
| FlowControlEnabled |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die zuverlässige Sitzung die Ablaufsteuerung aktiviert hat. |
| InactivityTimeout |
Ruft ein Zeitintervall ab, das ein Dienst vor dem Schließen inaktiv bleibt, oder legt dieses fest. |
| MaxPendingChannels |
Dient zum Abrufen oder Festlegen der größten Anzahl von Kanälen, die während der zuverlässigen Sitzung ausstehen können. |
| MaxRetryCount |
Ruft die maximale Anzahl der Male ab, mit denen eine Nachricht während der zuverlässigen Sitzung übertragen werden soll, oder legt diese fest. |
| MaxTransferWindowSize |
Dient zum Abrufen oder Festlegen der größten Anzahl von Nachrichten, die entweder im Sendepuffer oder im Empfangspuffer vorhanden sein können. |
| Ordered |
Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob die Nachrichtenübermittlung die Reihenfolge beibehalten muss, in der Nachrichten gesendet werden. |
| ReliableMessagingVersion |
Dient zum Abrufen oder Festlegen der Version von WS-ReliableMessaging durch das Bindungselement angegeben. |
Methoden
| Name | Beschreibung |
|---|---|
| BuildChannelFactory<TChannel>(BindingContext) |
Gibt eine Factory zurück, die einen Kanal eines angegebenen Typs erstellt, der eine zuverlässige Sitzung unterstützt. |
| BuildChannelListener<TChannel>(BindingContext) |
Gibt einen Listener zurück, der einen Kanal eines angegebenen Typs akzeptiert, der eine zuverlässige Sitzung unterstützt. |
| CanBuildChannelFactory<TChannel>(BindingContext) |
Gibt einen Wert zurück, der angibt, ob die Kanalfactory für den Kanal und den Kontext erstellt werden kann, sofern eine zuverlässige Sitzung unterstützt werden kann. |
| CanBuildChannelListener<TChannel>(BindingContext) |
Gibt einen Wert zurück, der angibt, ob der Kanallistener für den Kanal und den Kontext erstellt werden kann, sofern eine zuverlässige Sitzung unterstützt werden kann. |
| Clone() |
Erstellt eine Kopie des aktuellen zuverlässigen Sitzungsbindungselements. |
| Equals(Object) |
Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht. (Geerbt von Object) |
| GetHashCode() |
Dient als Standardhashfunktion. (Geerbt von Object) |
| GetProperty<T>(BindingContext) |
Ruft eine Eigenschaft des angegebenen Typs aus dem Bindungskontext ab. |
| GetType() |
Ruft die Type der aktuellen Instanz ab. (Geerbt von Object) |
| MemberwiseClone() |
Erstellt eine flache Kopie der aktuellen Object. (Geerbt von Object) |
| ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext) |
Ordnet die Informationen, die im zuverlässigen Sitzungsbindungselement enthalten sind, den WSDL-Elementen zu, mit denen ein Remoteendpunkt mit einer zuverlässigen Sitzung auf den Dienst zugreifen kann. |