MsmqIntegrationBinding Classe

Definizione

La classe MsmqIntegrationBinding esegue il mapping Microsoft messaggi di accodamento messaggi (MSMQ) ai messaggi Windows Communication Foundation (WCF).

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

Esempio

Il frammento di file di configurazione seguente illustra come configurare l'associazione MsmqIntegrationBinding nel client:

Il frammento di file di configurazione seguente illustra come configurare l'associazione MsmqIntegrationBinding nel servizio:

[ServiceContract(Namespace = "http://Microsoft.ServiceModel.Samples")]
[ServiceKnownType(typeof(PurchaseOrder))]
public interface IOrderProcessor
{
    [OperationContract(IsOneWay = true, Action = "*")]
    void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> msg);
}
<ServiceContract(Namespace:="http:'Microsoft.ServiceModel.Samples")> _
<ServiceKnownType(GetType(PurchaseOrder))> _
Public Interface IOrderProcessor
    <OperationContract(IsOneWay:=True, Action:="*")> _
    Sub SubmitPurchaseOrder(ByVal msg As MsmqMessage(Of PurchaseOrder))
End Interface

Il codice seguente illustra come usare l'associazione MsmqIntegrationBinding nel servizio a livello di codice:

public class OrderProcessorService : IOrderProcessor
{
    [OperationBehavior(TransactionScopeRequired = true, TransactionAutoComplete = true)]
    public void SubmitPurchaseOrder(MsmqMessage<PurchaseOrder> ordermsg)
    {
        PurchaseOrder po = (PurchaseOrder)ordermsg.Body;
        Random statusIndexer = new Random();
        po.Status = (OrderStates)statusIndexer.Next(3);
        Console.WriteLine("Processing {0} ", po);
    }

    // Host the service within this EXE console application.
public static void Main()
{
    // Get base address from appsettings in configuration.
    Uri baseAddress = new Uri(ConfigurationManager.AppSettings["baseAddress"]);

    // Create a ServiceHost for the CalculatorService type and provide the base address.
    using (ServiceHost serviceHost = new ServiceHost(typeof(IOrderProcessor), 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("The service is running in the following account: {0}", WindowsIdentity.GetCurrent().Name);
        Console.WriteLine("Press <ENTER> to terminate service.");
        Console.WriteLine();
        Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
        serviceHost.Close();
    }
}
}
Public Class OrderProcessorService
    Implements IOrderProcessor

    <OperationBehavior(TransactionScopeRequired:=True, TransactionAutoComplete:=True)> _
    Public Sub SubmitPurchaseOrder(ByVal ordermsg As MsmqMessage(Of PurchaseOrder)) Implements IOrderProcessor.SubmitPurchaseOrder
        Dim po As PurchaseOrder = ordermsg.Body
        Dim statusIndexer As New Random()
        po.Status = statusIndexer.Next(3)
        Console.WriteLine("Processing {0} ", po)
    End Sub
End Class

Il codice seguente illustra come usare l'associazione MsmqIntegrationBinding nel client a livello di codice:

MsmqIntegrationBinding binding = new MsmqIntegrationBinding();
EndpointAddress address = new EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders");
ChannelFactory<IOrderProcessor> channelFactory = new ChannelFactory<IOrderProcessor>(binding, address);
IOrderProcessor channel = channelFactory.CreateChannel();

PurchaseOrder po = new PurchaseOrder();
po.customerId = "somecustomer.com";
po.poNumber = Guid.NewGuid().ToString();

PurchaseOrderLineItem lineItem1 = new PurchaseOrderLineItem();
lineItem1.productId = "Blue Widget";
lineItem1.quantity = 54;
lineItem1.unitCost = 29.99F;

PurchaseOrderLineItem lineItem2 = new PurchaseOrderLineItem();
lineItem2.productId = "Red Widget";
lineItem2.quantity = 890;
lineItem2.unitCost = 45.89F;

po.orderLineItems = new PurchaseOrderLineItem[2];
po.orderLineItems[0] = lineItem1;
po.orderLineItems[1] = lineItem2;

MsmqMessage<PurchaseOrder> ordermsg = new MsmqMessage<PurchaseOrder>(po);
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required))
{
    channel.SubmitPurchaseOrder(ordermsg);
    scope.Complete();
}
Console.WriteLine("Order has been submitted:{0}", po);
Dim binding As New MsmqIntegrationBinding()
Dim address As New EndpointAddress("msmq.formatname:DIRECT=OS:.\\private$\\Orders")
Dim channelFactory As New ChannelFactory(Of IOrderProcessor)(binding, address)
Dim channel As IOrderProcessor = channelFactory.CreateChannel()

Dim po As New PurchaseOrder()
po.customerId = "somecustomer.com"
po.poNumber = Guid.NewGuid().ToString()

Dim lineItem1 As New PurchaseOrderLineItem()
lineItem1.productId = "Blue Widget"
lineItem1.quantity = 54
lineItem1.unitCost = 29.99F

Dim lineItem2 = New PurchaseOrderLineItem()
lineItem2.productId = "Red Widget"
lineItem2.quantity = 890
lineItem2.unitCost = 45.89F

Dim lineItems(1) As PurchaseOrderLineItem
lineItems(0) = lineItem1
lineItems(1) = lineItem2

po.orderLineItems = lineItems

Dim ordermsg As MsmqMessage(Of PurchaseOrder) = New MsmqMessage(Of PurchaseOrder)(po)
Using scope As New TransactionScope(TransactionScopeOption.Required)
    channel.SubmitPurchaseOrder(ordermsg)
    scope.Complete()
End Using
Console.WriteLine("Order has been submitted:{0}", po)

Commenti

Importante

La chiamata di metodi da questa classe con dati non attendibili è un rischio per la sicurezza. Chiamare i metodi da questa classe solo con dati attendibili. Per altre informazioni, vedere Convalidare tutti gli input.

Questa associazione può essere usata per consentire alle applicazioni WCF di inviare e ricevere messaggi da e verso applicazioni MSMQ esistenti che usano API COM, C++ native o i tipi definiti nello spazio dei System.Messaging nomi.

Costruttori

Nome Descrizione
MsmqIntegrationBinding()

Inizializza una nuova istanza della classe MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Inizializza una nuova istanza della MsmqIntegrationBinding classe utilizzando l'oggetto specificato MsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String)

Inizializza una nuova istanza della MsmqIntegrationBinding classe dalle impostazioni di un elemento di associazione di configurazione specificato.

Proprietà

Nome Descrizione
CloseTimeout

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

(Ereditato da Binding)
CustomDeadLetterQueue

Ottiene o imposta un URI che contiene la posizione della coda di messaggi non recapitabili per ogni applicazione, in cui vengono inseriti i messaggi scaduti o che hanno avuto esito negativo per il trasferimento o il recapito.

(Ereditato da MsmqBindingBase)
DeadLetterQueue

Ottiene o imposta un valore di enumerazione che indica il tipo di coda di 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)
ExactlyOnce

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

(Ereditato da MsmqBindingBase)
MaxReceivedMessageSize

Ottiene o imposta le dimensioni massime, in byte, per un messaggio elaborato da questa associazione.

(Ereditato da MsmqBindingBase)
MaxRetryCycles

Ottiene o imposta il numero massimo di cicli di ripetizione dei tentativi per tentare il 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 specificato per l'apertura di una connessione prima che il trasporto generi un'eccezione.

(Ereditato da Binding)
ReceiveContextEnabled

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

(Ereditato da MsmqBindingBase)
ReceiveErrorHandling

Ottiene o imposta un valore di enumerazione che specifica la modalità di gestione dei messaggi non elaborabili.

(Ereditato da MsmqBindingBase)
ReceiveRetryCount

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

(Ereditato da MsmqBindingBase)
ReceiveTimeout

Ottiene o imposta l'intervallo di tempo in cui una connessione può rimanere inattiva, durante la quale non vengono ricevuti messaggi dell'applicazione, prima che venga eliminata.

(Ereditato da Binding)
RetryCycleDelay

Ottiene o imposta un valore che indica il ritardo di tempo tra i cicli di ripetizione dei tentativi quando si tenta di recapitare un messaggio che non può essere recapitato immediatamente.

(Ereditato da MsmqBindingBase)
Scheme

Restituisce lo schema per questa associazione.

(Ereditato da MsmqBindingBase)
Security

Ottiene l'oggetto MsmqIntegrationSecurity associato a questa associazione.

SendTimeout

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

(Ereditato da Binding)
SerializationFormat

Ottiene o imposta il formato di serializzazione da utilizzare per serializzare o deserializzare il messaggio.

TimeToLive

Ottiene o imposta l'intervallo di tempo che indica per quanto tempo i messaggi elaborati da questa associazione possono trovarsi nella coda prima della scadenza.

(Ereditato da MsmqBindingBase)
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 del journal di origine.

(Ereditato da MsmqBindingBase)
ValidityDuration

Ottiene o imposta un valore che specifica la durata per cui un messaggio verrà bloccato dalla funzionalità di contesto di ricezione.

(Ereditato da MsmqBindingBase)

Metodi

Nome Descrizione
BuildChannelFactory<TChannel>(BindingParameterCollection)

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

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

Compila lo stack channel factory nel client che crea un tipo di canale specificato 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 di canale specificato e che soddisfa le funzionalità specificate da una raccolta di parametri di associazione.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Restituisce un valore che indica se l'associazione corrente può compilare uno stack 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 di listener del canale nel servizio che soddisfa la raccolta di parametri di associazione specificati.

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

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

(Ereditato da Binding)
CreateBindingElements()

Restituisce gli elementi di associazione nello stack di profili di base.

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)

Restituisce un oggetto tipizzato richiesto, se presente, dal livello appropriato nello stack di binding.

(Ereditato da Binding)
GetType()

Ottiene il Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ShouldSerializeName()

Restituisce un valore che indica se il nome dell'associazione deve essere serializzato.

(Ereditato da Binding)
ShouldSerializeNamespace()

Restituisce un valore che indica se lo spazio dei nomi dell'associazione deve essere serializzato.

(Ereditato da Binding)
ShouldSerializeSecurity()

Ottiene un valore che specifica se le informazioni di sicurezza devono essere serializzate.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

Nome Descrizione
IBindingRuntimePreferences.ReceiveSynchronously

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

(Ereditato da MsmqBindingBase)

Si applica a