Condividi tramite


MsmqIntegrationBinding Classe

Definizione

La classe MsmqIntegrationBinding esegue il mapping di messaggi di Microsoft Message Queuing (MSMQ) a messaggi di 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

Nel frammento del file di configurazione seguente è illustrato come configurare l'associazione MsmqIntegrationBinding sul client:

Nel frammento del file di configurazione seguente è illustrato come configurare l'associazione MsmqIntegrationBinding sul 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

Nell'esempio di codice seguente viene illustrato come utilizzare l'associazione MsmqIntegrationBinding sul servizio a livello di programmazione:

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

Nell'esempio di codice seguente viene illustrato come utilizzare l'associazione MsmqIntegrationBinding sul client a livello di programmazione:

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 a metodi da questa classe con dati non attendibili costituisce 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

MsmqIntegrationBinding()

Inizializza una nuova istanza della classe MsmqIntegrationBinding.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Inizializza una nuova istanza della classe MsmqIntegrationBinding mediante l'elemento MsmqIntegrationSecurityMode specificato.

MsmqIntegrationBinding(String)

Consente di inizializzare una nuova istanza della classe MsmqIntegrationBinding 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)
ExactlyOnce

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

(Ereditato da MsmqBindingBase)
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)
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 l'oggetto MsmqIntegrationSecurity relativo all'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)
SerializationFormat

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

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)
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 gli elementi di associazione nello stack del profilo 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)

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)
ShouldSerializeSecurity()

Ottiene un valore che specifica se è necessario serializzare le informazioni di sicurezza.

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