MsmqIntegrationBinding Klass

Definition

Klassen MsmqIntegrationBinding mappar MSMQ-meddelanden (Message Queuing) Microsoft meddelanden till 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
Arv
MsmqIntegrationBinding

Exempel

Följande konfigurationsfilfragment visar hur du konfigurerar bindningen MsmqIntegrationBinding på klienten:

Följande konfigurationsfilfragment visar hur du konfigurerar bindningen MsmqIntegrationBinding för tjänsten:

[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

Följande kod illustrerar hur du använder bindningen MsmqIntegrationBinding på tjänsten programmatiskt:

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

Följande kod visar hur du använder bindningen MsmqIntegrationBinding på klienten programmatiskt:

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)

Kommentarer

Important

Att anropa metoder från den här klassen med ej betrodda data är en säkerhetsrisk. Anropa metoderna från den här klassen endast med betrodda data. För mer information, se Verifiera alla indata.

Den här bindningen kan användas för att göra det möjligt för WCF-program att skicka och ta emot meddelanden till och från befintliga MSMQ-program som använder COM, interna C++-API:er eller de typer som definierats i System.Messaging namnområdet.

Konstruktorer

Name Description
MsmqIntegrationBinding()

Initierar en ny instans av MsmqIntegrationBinding klassen.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

Initierar en ny instans av MsmqIntegrationBinding klassen med hjälp av den angivna MsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String)

Initierar en ny instans av MsmqIntegrationBinding klassen från inställningarna för ett angivet konfigurationsbindningselement.

Egenskaper

Name Description
CloseTimeout

Hämtar eller anger tidsintervallet för en anslutning som ska stängas innan transporten skapar ett undantag.

(Ärvd från Binding)
CustomDeadLetterQueue

Hämtar eller anger en URI som innehåller platsen för kön med obeställbara meddelanden för varje program, där meddelanden som har upphört att gälla eller som har misslyckats med överföring eller leverans placeras.

(Ärvd från MsmqBindingBase)
DeadLetterQueue

Hämtar eller anger ett uppräkningsvärde som anger vilken typ av kö med obeställbara bokstäver som ska användas.

(Ärvd från MsmqBindingBase)
Durable

Hämtar eller anger ett värde som anger om de meddelanden som bearbetas av den här bindningen är varaktiga eller flyktiga.

(Ärvd från MsmqBindingBase)
ExactlyOnce

Hämtar eller anger ett värde som anger om meddelanden som bearbetas av den här bindningen tas emot exakt en gång.

(Ärvd från MsmqBindingBase)
MaxReceivedMessageSize

Hämtar eller anger den maximala storleken, i byte, för ett meddelande som bearbetas av den här bindningen.

(Ärvd från MsmqBindingBase)
MaxRetryCycles

Hämtar eller anger det maximala antalet återförsökscykler för att försöka leverera meddelanden till det mottagande programmet.

(Ärvd från MsmqBindingBase)
MessageVersion

Hämtar meddelandeversionen som används av klienter och tjänster som konfigurerats med bindningen.

(Ärvd från Binding)
Name

Hämtar eller anger namnet på bindningen.

(Ärvd från Binding)
Namespace

Hämtar eller anger XML-namnområdet för bindningen.

(Ärvd från Binding)
OpenTimeout

Hämtar eller anger tidsintervallet för en anslutning som ska öppnas innan transporten skapar ett undantag.

(Ärvd från Binding)
ReceiveContextEnabled

Hämtar eller anger ett värde som anger om beteendet för att ta emot kontext begärs.

(Ärvd från MsmqBindingBase)
ReceiveErrorHandling

Hämtar eller anger ett uppräkningsvärde som anger hur giftmeddelanden hanteras.

(Ärvd från MsmqBindingBase)
ReceiveRetryCount

Hämtar eller anger det maximala antalet omedelbara leveransförsök för ett meddelande som läss från programkön.

(Ärvd från MsmqBindingBase)
ReceiveTimeout

Hämtar eller anger det tidsintervall som en anslutning kan förbli inaktiv under vilken inga programmeddelanden tas emot innan den tas bort.

(Ärvd från Binding)
RetryCycleDelay

Hämtar eller anger ett värde som anger tidsfördröjningen mellan återförsökscykler när du försöker leverera ett meddelande som inte kan levereras omedelbart.

(Ärvd från MsmqBindingBase)
Scheme

Returnerar schemat för den här bindningen.

(Ärvd från MsmqBindingBase)
Security

Hämtar den MsmqIntegrationSecurity som är associerad med den här bindningen.

SendTimeout

Hämtar eller anger tidsintervallet för en skrivåtgärd som ska slutföras innan transporten genererar ett undantag.

(Ärvd från Binding)
SerializationFormat

Hämtar eller anger det serialiseringsformat som ska användas för att serialisera eller deserialisera meddelandet.

TimeToLive

Hämtar eller anger det tidsintervall som anger hur länge meddelanden som bearbetas av den här bindningen kan finnas i kön innan de upphör att gälla.

(Ärvd från MsmqBindingBase)
UseMsmqTracing

Hämtar eller anger ett värde som anger om meddelanden som bearbetas av den här bindningen ska spåras.

(Ärvd från MsmqBindingBase)
UseSourceJournal

Hämtar eller anger ett värde som anger om kopior av meddelanden som bearbetas av den här bindningen ska lagras i källjournalkön.

(Ärvd från MsmqBindingBase)
ValidityDuration

Hämtar eller anger ett värde som anger hur länge ett meddelande ska låsas av funktionen ta emot kontext.

(Ärvd från MsmqBindingBase)

Metoder

Name Description
BuildChannelFactory<TChannel>(BindingParameterCollection)

Skapar kanalfabriksstacken på klienten som skapar en angiven typ av kanal och som uppfyller de funktioner som anges av en samling bindningsparametrar.

(Ärvd från Binding)
BuildChannelFactory<TChannel>(Object[])

Skapar kanalfabriksstacken på klienten som skapar en angiven typ av kanal och som uppfyller de funktioner som anges av en objektmatris.

(Ärvd från Binding)
BuildChannelListener<TChannel>(BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de funktioner som anges av en samling bindningsparametrar.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection)

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
BuildChannelListener<TChannel>(Uri, String, Object[])

Skapar kanallyssnaren på tjänsten som accepterar en angiven typ av kanal och som uppfyller de angivna funktionerna.

(Ärvd från Binding)
CanBuildChannelFactory<TChannel>(BindingParameterCollection)

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanalfabriksstack på klienten som uppfyller samlingen med angivna bindningsparametrar.

(Ärvd från Binding)
CanBuildChannelFactory<TChannel>(Object[])

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanalfabriksstack på klienten som uppfyller de krav som anges av en objektmatris.

(Ärvd från Binding)
CanBuildChannelListener<TChannel>(BindingParameterCollection)

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanallyssningsstack på tjänsten som uppfyller den angivna samlingen med bindningsparametrar.

(Ärvd från Binding)
CanBuildChannelListener<TChannel>(Object[])

Returnerar ett värde som anger om den aktuella bindningen kan skapa en kanallyssningsstack på tjänsten som uppfyller de villkor som anges i en matris med objekt.

(Ärvd från Binding)
CreateBindingElements()

Returnerar bindningselementen i den grundläggande profilstacken.

Equals(Object)

Avgör om det angivna objektet är lika med det aktuella objektet.

(Ärvd från Object)
GetHashCode()

Fungerar som standard-hash-funktion.

(Ärvd från Object)
GetProperty<T>(BindingParameterCollection)

Returnerar ett typat objekt som begärs, om det finns, från lämpligt lager i bindningsstacken.

(Ärvd från Binding)
GetType()

Hämtar den aktuella instansen Type .

(Ärvd från Object)
MemberwiseClone()

Skapar en ytlig kopia av den aktuella Object.

(Ärvd från Object)
ShouldSerializeName()

Returnerar om namnet på bindningen ska serialiseras.

(Ärvd från Binding)
ShouldSerializeNamespace()

Returnerar om bindningens namnområde ska serialiseras.

(Ärvd från Binding)
ShouldSerializeSecurity()

Hämtar ett värde som anger om säkerhetsinformation ska serialiseras.

ToString()

Returnerar en sträng som representerar det aktuella objektet.

(Ärvd från Object)

Explicita gränssnittsimplementeringar

Name Description
IBindingRuntimePreferences.ReceiveSynchronously

Hämtar ett värde som anger om inkommande begäranden kan hanteras mer effektivt synkront eller asynkront.

(Ärvd från MsmqBindingBase)

Gäller för