MsmqIntegrationBinding Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
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à
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) |