NetMsmqBinding Klasse

Definition

Stellt eine Bindung in der Warteschlange dar, die für eine computerübergreifende Kommunikation geeignet ist.

public ref class NetMsmqBinding : System::ServiceModel::MsmqBindingBase
public class NetMsmqBinding : System.ServiceModel.MsmqBindingBase
type NetMsmqBinding = class
    inherit MsmqBindingBase
Public Class NetMsmqBinding
Inherits MsmqBindingBase
Vererbung
NetMsmqBinding

Beispiele

Das folgende Beispiel zeigt, wie ein Dienst konfiguriert wird, um die NetMsmqBinding-Bindung zu verwenden:

Als Erstes die Konfigurationsdatei.

Danach der tatsächliche Dienstcode.

// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IQueueCalculator
{
    [OperationContract(IsOneWay=true)]
    void Add(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Subtract(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Multiply(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Divide(double n1, double n2);
}
' Define a service contract. 
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface IQueueCalculator
    <OperationContract(IsOneWay:=True)> _
    Sub Add(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Subtract(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Multiply(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Divide(ByVal n1 As Double, ByVal n2 As Double)
End Interface
// Service class that implements the service contract.
// Added code to write output to the console window
public class CalculatorService : IQueueCalculator
{
    [OperationBehavior]
    public void Add(double n1, double n2)
    {
        double result = n1 + n2;
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Divide(double n1, double n2)
    {
        double result = n1 / n2;
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result);
    }
}
' Service class that implements the service contract.
' Added code to write output to the console window
Public Class CalculatorService
    Implements IQueueCalculator
    <OperationBehavior> _
    Public Sub Add(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Add
        Dim result As Double = n1 + n2
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Subtract(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Subtract
        Dim result As Double = n1 - n2
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Multiply(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Multiply
        Dim result As Double = n1 * n2
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Divide(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Divide
        Dim result As Double = n1 / n2
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result)
    End Sub
End Class
// This is the hosting application. This code can appear directly in the service class as well.
class HostApp
{
    // Host the service within this EXE console application.
    public static void Main()
    {
        // Get MSMQ queue name from appsettings in configuration.
        string queueName = ConfigurationManager.AppSettings["queueName"];

        // Create the transacted MSMQ queue if necessary.
        if (!MessageQueue.Exists(queueName))
            MessageQueue.Create(queueName, true);

        // Get the base address that is used to listen for WS-MetaDataExchange requests.
        // This is useful to generate a proxy for the client.
        string baseAddress = ConfigurationManager.AppSettings["baseAddress"];

        // Create a ServiceHost for the CalculatorService type.
        using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), new Uri(baseAddress)))
        {
            // 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();
        }
    }
}
' This is the hosting application. This code can appear directly in the service class as well.
Friend Class HostApp
    ' Host the service within this EXE console application.
    Public Shared Sub Main()
        ' Get MSMQ queue name from appsettings in configuration.
        Dim queueName As String = ConfigurationManager.AppSettings("queueName")

        ' Create the transacted MSMQ queue if necessary.
        If (Not MessageQueue.Exists(queueName)) Then
            MessageQueue.Create(queueName, True)
        End If

        ' Get the base address that is used to listen for WS-MetaDataExchange requests.
        ' This is useful to generate a proxy for the client.
        Dim baseAddress As String = ConfigurationManager.AppSettings("baseAddress")

        ' Create a ServiceHost for the CalculatorService type.
        Using serviceHost As New ServiceHost(GetType(CalculatorService), New Uri(baseAddress))
            ' 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
    End Sub
End Class

Hinweise

Die NetMsmqBinding-Bindung stellt Unterstützung für Warteschlangen bereit, indem MSMQ (Microsoft Message Queuing) als Transport eingesetzt wird, und ermöglicht Unterstützung für lose miteinander verknüpfte Anwendungen, Fehlerisolierung, Lastenausgleich und Vorgänge im Offlinemodus. Eine Diskussion dieser Features finden Sie unter " Warteschlangenübersicht".

Dies ist eine der von Windows Communication Foundation (WCF) bereitgestellten Systembindungen. Mit Ausnahme einiger erweiterter Szenarien, in denen Konfigurationswerte beim Initialisieren eines Diensts festgelegt werden müssen, wird empfohlen, anstelle eines codebasierten Ansatzes die Bindung mit Konfigurationswerten zu definieren.

Konstruktoren

NetMsmqBinding()

Initialisiert eine neue Instanz der NetMsmqBinding-Klasse.

NetMsmqBinding(NetMsmqSecurityMode)

Initialisiert eine neue Instanz der NetMsmqBinding-Klasse unter Verwendung des angegebenen Sicherheitsmodus.

NetMsmqBinding(String)

Initialisiert eine neue Instanz der NetMsmqBinding-Klasse aus den Einstellungen eines angegebenen Konfigurationsbindungselements.

Eigenschaften

CloseTimeout

Ruft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest.

(Geerbt von Binding)
CustomDeadLetterQueue

Ruft einen URI ab oder legt einen URI fest, der den Speicherort der Warteschlange für unzustellbare Meldungen für jede Anwendung enthält, in der Meldungen platziert werden, die abgelaufen sind oder für die die Übertragung fehlgeschlagen ist.

(Geerbt von MsmqBindingBase)
DeadLetterQueue

Ruft einen Enumerationswert ab oder legt einen Enumerationswert fest, der den Typ der zu verwendenden Warteschlange für unzustellbare Meldungen angibt.

(Geerbt von MsmqBindingBase)
Durable

Ruft einen Wert ab, der angibt, ob die von dieser Bindung verarbeiteten Meldungen permanent oder flüchtig sind, oder legt einen Wert fest.

(Geerbt von MsmqBindingBase)
EnvelopeVersion

Ruft die SOAP-Version ab, die für Nachrichten verwendet wird, die von dieser Bindung verarbeitet werden.

ExactlyOnce

Ruft einen booleschen Wert ab, der angibt, ob die von dieser Bindung verarbeiteten Meldungen genau einmal empfangen werden, oder legt diesen Wert fest.

(Geerbt von MsmqBindingBase)
MaxBufferPoolSize

Ruft die maximale Speicherkapazität ab, die vom Puffer-Manager für Nachrichten verwendet werden kann, der Nachrichten aus dem Kanal empfängt, oder legt diese fest.

MaxReceivedMessageSize

Ruft die maximale Größe in Byte für eine Nachricht ab, die von dieser Bindung verarbeitet wird, oder legt sie fest.

(Geerbt von MsmqBindingBase)
MaxRetryCycles

Ruft die maximale Anzahl der Neuversuche für den Versand von Meldungen an die empfangende Anwendung ab oder legt sie fest.

(Geerbt von MsmqBindingBase)
MessageVersion

Ruft die Nachrichtenversion ab, die von den Clients und Diensten verwendet wird, die mit der Bindung konfiguriert wurden.

(Geerbt von Binding)
Name

Ruft den Namen der Bindung ab oder legt diesen fest.

(Geerbt von Binding)
Namespace

Ruft den XML-Namespace einer Bindung ab oder legt diesen fest.

(Geerbt von Binding)
OpenTimeout

Ruft das Zeitintervall ab, das für eine Verbindung eingerichtet ist, die geöffnet wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest.

(Geerbt von Binding)
QueueTransferProtocol

Ruft einen Enumerationswert ab, der den Wartenschlangentransport für den Kommunikationskanal angibt, der von der Bindung verwendet wird, oder legt diesen fest.

ReaderQuotas

Ruft die dieser Bindung zugeordnete XmlDictionaryReaderQuotas ab oder legt diese fest.

ReceiveContextEnabled

Ruft einen Wert ab oder legt einen Wert fest, der angibt, ob das Empfangskontextverhalten angefordert wird.

(Geerbt von MsmqBindingBase)
ReceiveErrorHandling

Ruft einen Enumerationswert fest, der angibt, wie nicht verarbeitbare Meldungen behandelt werden, oder legt diesen fest.

(Geerbt von MsmqBindingBase)
ReceiveRetryCount

Ruft die maximale Anzahl von unmittelbaren Zustellversuchen für eine Meldung ab, die aus der Anwendungswarteschlange gelesen wird, oder legt diese fest.

(Geerbt von MsmqBindingBase)
ReceiveTimeout

Ruft ein Zeitintervall ab oder legt ein Zeitintervall fest, während dessen eine Verbindung inaktiv bleiben kann und keine Anwendungsnachrichten empfangen werden, bevor sie verworfen werden.

(Geerbt von Binding)
RetryCycleDelay

Ruft einen Wert ab oder legt einen Wert fest, der die Zeitverzögerung zwischen den Wiederholungszyklen angibt, in denen versucht wird, eine Meldung zuzustellen, die nicht sofort zugestellt werden konnte.

(Geerbt von MsmqBindingBase)
Scheme

Gibt das Schema für diese Bindung zurück.

(Geerbt von MsmqBindingBase)
Security

Ruft die dieser Bindung zugeordnete NetMsmqSecurity ab oder legt diese fest.

SendTimeout

Ruft das Zeitintervall ab, das für einen Schreibvorgang eingerichtet ist, der abgeschlossen wird, bevor ein Transport eine Ausnahme auslöst, oder legt dieses fest.

(Geerbt von Binding)
TimeToLive

Ruft das Zeitintervall ab oder legt das Zeitintervall fest, das angibt, wie lange die von dieser Bindung verarbeiteten Meldungen in der Warteschlange bleiben können, bevor sie ablaufen.

(Geerbt von MsmqBindingBase)
UseActiveDirectory

Gibt einen Wert zurück oder legt einen Wert fest, der angibt, ob Warteschlangenadressen mit Active Directory konvertiert werden sollen.

UseMsmqTracing

Ruft einen booleschen Wert ab, der angibt, ob von dieser Bindung verarbeitete Meldungen nachverfolgt werden sollen, oder legt diesen Wert fest.

(Geerbt von MsmqBindingBase)
UseSourceJournal

Ruft einen Wert ab, der angibt, ob von dieser Bindung verarbeitete Meldungskopien in der Quelljournalwarteschlange gespeichert werden sollen, oder legt diesen Wert fest.

(Geerbt von MsmqBindingBase)
ValidityDuration

Ruft einen Wert ab oder legt einen Wert fest, der die Dauer angibt, für die eine Meldung durch die Empfangskontextfunktion gesperrt wird.

(Geerbt von MsmqBindingBase)

Methoden

BuildChannelFactory<TChannel>(BindingParameterCollection)

Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden.

(Geerbt von Binding)
BuildChannelFactory<TChannel>(Object[])

Erstellt den Kanalfactorystapel auf dem Client, der einen festgelegten Kanaltyp erstellt und der die Funktionen erfüllt, die von einem Objektarray festgelegt werden.

(Geerbt von Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die Funktionen erfüllt, die von einer Auflistung von Bindungsparametern festgelegt werden.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Erstellt den Kanallistener auf dem Dienst, der einen festgelegten Kanaltyp akzeptiert und der die festgelegten Funktionen erfüllt.

(Geerbt von Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt.

(Geerbt von Binding)
CanBuildChannelFactory<TChannel>(Object[])

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanalfactorystapel auf dem Client erstellen kann, der die von einem Objektarray festgelegten Anforderungen erfüllt.

(Geerbt von Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die Auflistung festgelegter Bindungsparameter erfüllt.

(Geerbt von Binding)
CanBuildChannelListener<TChannel>(Object[])

Gibt einen Wert zurück, der angibt, ob die aktuelle Bindung einen Kanallistenerstapel auf dem Dienst erstellen kann, der die in einem Objektarray festgelegten Kriterien erfüllt.

(Geerbt von Binding)
CreateBindingElements()

Gibt eine geordnete Auflistung von Bindungselementen zurück, die in der aktuellen Bindung enthalten sind.

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetProperty<T>(BindingParameterCollection)

Gibt ggf. ein angefordertes typisiertes Objekt von der entsprechenden Ebene im Bindungsstapel zurück.

(Geerbt von Binding)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
ShouldSerializeName()

Gibt einen Wert zurück, der angibt, ob der Name der Bindung serialisiert werden soll.

(Geerbt von Binding)
ShouldSerializeNamespace()

Gibt einen Wert zurück, der angibt, ob der Namespace der Bindung serialisiert werden soll.

(Geerbt von Binding)
ShouldSerializeReaderQuotas()

Gibt einen Wert zurück, der angibt, ob die ReaderQuotas-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

ShouldSerializeSecurity()

Gibt einen Wert zurück, der angibt, ob die Security-Eigenschaft ihren Standardwert geändert hat und serialisiert werden soll.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Explizite Schnittstellenimplementierungen

IBindingRuntimePreferences.ReceiveSynchronously

Ruft einen Wert ab, der angibt, ob eingehende Anforderungen effizienter synchron oder asynchron behandelt werden können.

(Geerbt von MsmqBindingBase)

Gilt für