NetMsmqBinding Classe

Definizione

Rappresenta un'associazione in coda adatta per la comunicazione fra computer.

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

Esempio

Nel seguente esempio viene mostrato come configurare un servizio affinché utilizzi l'associazione NetMsmqBinding:

Innanzitutto, il file di configurazione.

Quindi, il codice di servizio effettivo:

// 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

Commenti

L'associazione NetMsmqBinding fornisce il supporto per la gestione della coda utilizzando il sistema di accodamento messaggi (MSMQ) come trasporto. Tale associazione fornisce inoltre il supporto per le applicazioni a regime di controllo libero, per l'isolamento degli errori, per la distribuzione ottimale dei carichi e per le operazioni disconnesse. Per una descrizione di queste funzionalità, vedere Panoramica delle code.

Si tratta di una delle associazioni fornite dal sistema fornite da Windows Communication Foundation (WCF). Salvo in certi scenari avanzati in cui i valori di configurazione devono essere impostati all'inizializzazione di un servizio, la procedura consigliata è definire l'associazione mediante i valori di configurazione e non tramite un approccio basato sul codice.

Costruttori

NetMsmqBinding()

Inizializza una nuova istanza della classe NetMsmqBinding.

NetMsmqBinding(NetMsmqSecurityMode)

Consente di inizializzare una nuova istanza della classe NetMsmqBinding utilizzando la modalità di sicurezza specificata.

NetMsmqBinding(String)

Consente di inizializzare una nuova istanza della classe NetMsmqBinding a partire dalle impostazioni di un elemento di associazione identificato da una configurazione specificata.

Proprietà

CloseTimeout

Ottiene o imposta l'intervallo di tempo fornito per la chiusura di una connessione prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
CustomDeadLetterQueue

Ottiene o imposta un URI che contiene il percorso della coda dei messaggi non recapitabili per ogni applicazione, in cui vengono collocati i messaggi scaduti o che non possono essere trasferiti o recapitati.

(Ereditato da MsmqBindingBase)
DeadLetterQueue

Ottiene o imposta un valore di enumerazione che indica il tipo di coda dei messaggi non recapitabili da utilizzare.

(Ereditato da MsmqBindingBase)
Durable

Ottiene o imposta un valore che indica se i messaggi elaborati da questa associazione sono durevoli o volatili.

(Ereditato da MsmqBindingBase)
EnvelopeVersion

Consente di ottenere la versione di SOAP utilizzata per i messaggi elaborati da questa associazione.

ExactlyOnce

Ottiene o imposta un valore che indica se i messaggi elaborati da questa associazione verranno ricevuti una sola volta.

(Ereditato da MsmqBindingBase)
MaxBufferPoolSize

Consente di ottenere o impostare la quantità massima di memoria allocata al gestore dei buffer che riceve i messaggi dal canale.

MaxReceivedMessageSize

Ottiene o imposta la dimensione massima in byte per un messaggio che viene elaborato dall'associazione.

(Ereditato da MsmqBindingBase)
MaxRetryCycles

Ottiene o imposta il numero massimo di cicli di ripetizione dei tentativi di recapito dei messaggi all'applicazione ricevente.

(Ereditato da MsmqBindingBase)
MessageVersion

Ottiene la versione del messaggio utilizzata dai client e dai servizi configurati con l'associazione.

(Ereditato da Binding)
Name

Ottiene o imposta il nome dell'associazione.

(Ereditato da Binding)
Namespace

Ottiene o imposta lo spazio dei nomi XML dell'associazione.

(Ereditato da Binding)
OpenTimeout

Ottiene o imposta l'intervallo di tempo fornito per l'apertura di una connessione prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
QueueTransferProtocol

Consente di ottenere o impostare un valore di enumerazione che indica il trasporto del canale di comunicazione in coda utilizzato da questa associazione.

ReaderQuotas

Consente di ottenere o impostare l'oggetto XmlDictionaryReaderQuotas relativo a questa associazione.

ReceiveContextEnabled

Ottiene o imposta un valore che indica se il comportamento del contesto di ricezione è richiesto.

(Ereditato da MsmqBindingBase)
ReceiveErrorHandling

Ottiene o imposta un valore di enumerazione che specifica come vengono gestiti i messaggi non elaborabili.

(Ereditato da MsmqBindingBase)
ReceiveRetryCount

Ottiene o imposta il numero massimo di tentativi di recapito immediato su un messaggio letto dalla coda dell'applicazione.

(Ereditato da MsmqBindingBase)
ReceiveTimeout

Ottiene o imposta l'intervallo di tempo durante il quale una connessione rimane inattiva, senza ricevere messaggi dell'applicazione, prima di essere rilasciata.

(Ereditato da Binding)
RetryCycleDelay

Ottiene o imposta un valore che indica l'intervallo di tempo tra i cicli di ripetizione dei tentativi di recapitare un messaggio che è impossibile recapitare immediatamente.

(Ereditato da MsmqBindingBase)
Scheme

Restituisce lo schema per l'associazione.

(Ereditato da MsmqBindingBase)
Security

Consente di ottenere o impostare l'oggetto NetMsmqSecurity relativo a questa associazione.

SendTimeout

Ottiene o imposta l'intervallo di tempo fornito per il completamento di un'operazione di scrittura prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
TimeToLive

Ottiene o imposta un valore che indica per quanto tempo i messaggi elaborati da questa associazione possono rimanere nella coda prima di scadere.

(Ereditato da MsmqBindingBase)
UseActiveDirectory

Ottiene o imposta un valore che indica se convertire gli indirizzi delle code mediante Active Directory.

UseMsmqTracing

Ottiene o imposta un valore che indica se i messaggi elaborati da questa associazione devono essere tracciati.

(Ereditato da MsmqBindingBase)
UseSourceJournal

Ottiene o imposta un valore che indica se le copie dei messaggi elaborati da questa associazione devono essere archiviate nella coda journal di origine.

(Ereditato da MsmqBindingBase)
ValidityDuration

Ottiene o imposta un valore che specifica la durata in cui un messaggio sarà bloccato dalla funzionalità del contesto di ricezione.

(Ereditato da MsmqBindingBase)

Metodi

BuildChannelFactory<TChannel>(BindingParameterCollection)

Compila lo stack della channel factory nel client che crea un tipo specificato di canale e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione.

(Ereditato da Binding)
BuildChannelFactory<TChannel>(Object[])

Compila lo stack della channel factory nel client che crea un tipo specificato di canale e che soddisfa le funzionalità specificate da una matrice di oggetti.

(Ereditato da Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Compila il listener del canale nel servizio che accetta un tipo specificato di canale e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Compila il listener del canale sul servizio che accetta un tipo di canale specificato e che presenta le funzionalità specificate.

(Ereditato da Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Restituisce un valore che indica se l'associazione corrente può compilare uno stack della channel factory nel client che soddisfa la raccolta dei parametri di associazione specificati.

(Ereditato da Binding)
CanBuildChannelFactory<TChannel>(Object[])

Restituisce un valore che indica se l'associazione corrente può compilare uno stack della channel factory nel client che soddisfa i requisiti specificati da una matrice di oggetti.

(Ereditato da Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Restituisce un valore che indica se l'associazione corrente può compilare uno stack del channel listener nel servizio che soddisfa la raccolta dei parametri di associazione specificati.

(Ereditato da Binding)
CanBuildChannelListener<TChannel>(Object[])

Restituisce un valore che indica se l'associazione corrente può compilare uno stack del channel listener nel servizio che soddisfa i criteri specificati in una matrice di oggetti.

(Ereditato da Binding)
CreateBindingElements()

Restituisce una raccolta ordinata di elementi di associazione contenuti nell'associazione corrente.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetProperty<T>(BindingParameterCollection)

Se presente, restituisce un oggetto tipizzato richiesto dal livello appropriato nello stack dell'associazione.

(Ereditato da Binding)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
ShouldSerializeName()

Indica se il nome dell'associazione deve essere serializzato.

(Ereditato da Binding)
ShouldSerializeNamespace()

Indica se lo spazio dei nomi dell'associazione deve essere serializzato.

(Ereditato da Binding)
ShouldSerializeReaderQuotas()

Restituisce un valore che indica se la proprietà ReaderQuotas è cambiata rispetto al valore predefinito e deve essere serializzata.

ShouldSerializeSecurity()

Restituisce un valore che indica se la proprietà Security è cambiata rispetto al valore predefinito e deve essere serializzata.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IBindingRuntimePreferences.ReceiveSynchronously

Ottiene un valore che indica se le richieste in entrata possono essere gestite più efficientemente in modo sincrono o in modo asincrono.

(Ereditato da MsmqBindingBase)

Si applica a