MsmqIntegrationBinding Klasa
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Klasa MsmqIntegrationBinding mapuje komunikaty usługi Microsoft Message Queuing (MSMQ) na komunikaty 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
- Dziedziczenie
Przykłady
Poniższy fragment kodu pliku konfiguracji ilustruje sposób konfigurowania MsmqIntegrationBinding powiązania na kliencie:
Poniższy fragment kodu pliku konfiguracji ilustruje sposób konfigurowania MsmqIntegrationBinding powiązania w usłudze:
[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
Poniższy kod ilustruje sposób stosowania MsmqIntegrationBinding powiązania w usłudze programowo:
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
Poniższy kod ilustruje sposób stosowania MsmqIntegrationBinding powiązania na kliencie programowo:
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)
Uwagi
Ważne
Wywoływanie metod z tej klasy z niezaufanymi danymi jest zagrożeniem bezpieczeństwa. Wywołaj metody z tej klasy tylko z zaufanymi danymi. Aby uzyskać więcej informacji, zobacz Validate All Inputs (Weryfikowanie wszystkich danych wejściowych).
To powiązanie może służyć do umożliwienia aplikacjom WCF wysyłania i odbierania komunikatów do i z istniejących aplikacji MSMQ korzystających z interfejsów API COM, natywnych interfejsów API języka C++ lub typów zdefiniowanych w System.Messaging przestrzeni nazw.
Konstruktory
| MsmqIntegrationBinding() |
Inicjuje nowe wystąpienie klasy MsmqIntegrationBinding. |
| MsmqIntegrationBinding(MsmqIntegrationSecurityMode) |
Inicjuje MsmqIntegrationBinding nowe wystąpienie klasy przy użyciu określonego MsmqIntegrationSecurityModeelementu . |
| MsmqIntegrationBinding(String) |
Inicjuje MsmqIntegrationBinding nowe wystąpienie klasy z ustawień określonego elementu powiązania konfiguracji. |
Właściwości
| CloseTimeout |
Pobiera lub ustawia interwał czasu podanego dla połączenia do zamknięcia, zanim transport zgłasza wyjątek. (Odziedziczone po Binding) |
| CustomDeadLetterQueue |
Pobiera lub ustawia identyfikator URI, który zawiera lokalizację kolejki utraconych wiadomości dla każdej aplikacji, w której są umieszczane komunikaty, które wygasły lub które zakończyły się niepowodzeniem transferu lub dostarczania. (Odziedziczone po MsmqBindingBase) |
| DeadLetterQueue |
Pobiera lub ustawia wartość wyliczenia, która wskazuje typ kolejki utraconych liter do użycia. (Odziedziczone po MsmqBindingBase) |
| Durable |
Pobiera lub ustawia wartość wskazującą, czy komunikaty przetwarzane przez to powiązanie są trwałe, czy nietrwałe. (Odziedziczone po MsmqBindingBase) |
| ExactlyOnce |
Pobiera lub ustawia wartość wskazującą, czy komunikaty przetwarzane przez to powiązanie są odbierane dokładnie raz. (Odziedziczone po MsmqBindingBase) |
| MaxReceivedMessageSize |
Pobiera lub ustawia maksymalny rozmiar w bajtach dla komunikatu przetwarzanego przez to powiązanie. (Odziedziczone po MsmqBindingBase) |
| MaxRetryCycles |
Pobiera lub ustawia maksymalną liczbę cykli ponawiania próby dostarczenia komunikatów do aplikacji odbieranej. (Odziedziczone po MsmqBindingBase) |
| MessageVersion |
Pobiera wersję komunikatu używaną przez klientów i usługi skonfigurowane za pomocą powiązania. (Odziedziczone po Binding) |
| Name |
Pobiera lub ustawia nazwę powiązania. (Odziedziczone po Binding) |
| Namespace |
Pobiera lub ustawia przestrzeń nazw XML powiązania. (Odziedziczone po Binding) |
| OpenTimeout |
Pobiera lub ustawia interwał czasu podany dla połączenia do otwarcia, zanim transport zgłosi wyjątek. (Odziedziczone po Binding) |
| ReceiveContextEnabled |
Pobiera lub ustawia wartość wskazującą, czy żądanie zachowania kontekstu odbierania jest wymagane. (Odziedziczone po MsmqBindingBase) |
| ReceiveErrorHandling |
Pobiera lub ustawia wartość wyliczenia określającą sposób obsługi zatrutych komunikatów. (Odziedziczone po MsmqBindingBase) |
| ReceiveRetryCount |
Pobiera lub ustawia maksymalną liczbę prób natychmiastowego dostarczania w komunikacie odczytanym z kolejki aplikacji. (Odziedziczone po MsmqBindingBase) |
| ReceiveTimeout |
Pobiera lub ustawia interwał czasu, przez który połączenie może pozostać nieaktywne, podczas którego nie są odbierane żadne komunikaty aplikacji, zanim zostanie porzucony. (Odziedziczone po Binding) |
| RetryCycleDelay |
Pobiera lub ustawia wartość wskazującą opóźnienie czasu między cyklami ponawiania próby podczas próby dostarczenia komunikatu, którego nie można dostarczyć natychmiast. (Odziedziczone po MsmqBindingBase) |
| Scheme |
Zwraca schemat dla tego powiązania. (Odziedziczone po MsmqBindingBase) |
| Security |
MsmqIntegrationSecurity Pobiera element skojarzony z tym powiązaniem. |
| SendTimeout |
Pobiera lub ustawia interwał czasu dla operacji zapisu do ukończenia, zanim transport zgłosi wyjątek. (Odziedziczone po Binding) |
| SerializationFormat |
Pobiera lub ustawia format serializacji, który ma być używany do serializacji lub deserializacji komunikatu. |
| TimeToLive |
Pobiera lub ustawia interwał czasu, który wskazuje, jak długo komunikaty przetwarzane przez to powiązanie mogą znajdować się w kolejce przed ich wygaśnięciem. (Odziedziczone po MsmqBindingBase) |
| UseMsmqTracing |
Pobiera lub ustawia wartość wskazującą, czy komunikaty przetwarzane przez to powiązanie powinny być śledzone. (Odziedziczone po MsmqBindingBase) |
| UseSourceJournal |
Pobiera lub ustawia wartość wskazującą, czy kopie komunikatów przetworzonych przez to powiązanie powinny być przechowywane w kolejce dziennika źródłowego. (Odziedziczone po MsmqBindingBase) |
| ValidityDuration |
Pobiera lub ustawia wartość określającą czas trwania komunikatu zostanie zablokowany przez funkcję kontekstu odbierania. (Odziedziczone po MsmqBindingBase) |
Metody
| BuildChannelFactory<TChannel>(BindingParameterCollection) |
Tworzy stos fabryki kanałów na kliencie, który tworzy określony typ kanału i spełnia funkcje określone przez kolekcję parametrów powiązania. (Odziedziczone po Binding) |
| BuildChannelFactory<TChannel>(Object[]) |
Tworzy stos fabryki kanałów na kliencie, który tworzy określony typ kanału i spełnia funkcje określone przez tablicę obiektów. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(BindingParameterCollection) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia funkcje określone przez kolekcję parametrów powiązania. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Object[]) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, Object[]) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| BuildChannelListener<TChannel>(Uri, String, Object[]) |
Tworzy odbiornik kanału w usłudze, który akceptuje określony typ kanału i spełnia określone funkcje. (Odziedziczone po Binding) |
| CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos fabryki kanału na kliencie, który spełnia określone parametry powiązania. (Odziedziczone po Binding) |
| CanBuildChannelFactory<TChannel>(Object[]) |
Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos fabryki kanałów na kliencie, który spełnia wymagania określone przez tablicę obiektów. (Odziedziczone po Binding) |
| CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos odbiornika kanału w usłudze, która spełnia określone parametry powiązania. (Odziedziczone po Binding) |
| CanBuildChannelListener<TChannel>(Object[]) |
Zwraca wartość wskazującą, czy bieżące powiązanie może utworzyć stos odbiornika kanału w usłudze, która spełnia kryteria określone w tablicy obiektów. (Odziedziczone po Binding) |
| CreateBindingElements() |
Zwraca elementy powiązania w stosie profilu podstawowego. |
| Equals(Object) |
Określa, czy dany obiekt jest taki sam, jak bieżący obiekt. (Odziedziczone po Object) |
| GetHashCode() |
Służy jako domyślna funkcja skrótu. (Odziedziczone po Object) |
| GetProperty<T>(BindingParameterCollection) |
Zwraca żądany obiekt typu z odpowiedniej warstwy w stosie powiązań. (Odziedziczone po Binding) |
| GetType() |
Type Pobiera wartość bieżącego wystąpienia. (Odziedziczone po Object) |
| MemberwiseClone() |
Tworzy płytkią kopię bieżącego Objectelementu . (Odziedziczone po Object) |
| ShouldSerializeName() |
Zwraca, czy nazwa powiązania powinna być serializowana. (Odziedziczone po Binding) |
| ShouldSerializeNamespace() |
Zwraca, czy przestrzeń nazw powiązania powinna być serializowana. (Odziedziczone po Binding) |
| ShouldSerializeSecurity() |
Pobiera wartość określającą, czy informacje o zabezpieczeniach powinny być serializowane. |
| ToString() |
Zwraca ciąg reprezentujący bieżący obiekt. (Odziedziczone po Object) |
Jawne implementacje interfejsu
| IBindingRuntimePreferences.ReceiveSynchronously |
Pobiera wartość wskazującą, czy żądania przychodzące mogą być obsługiwane wydajniej synchronicznie lub asynchronicznie. (Odziedziczone po MsmqBindingBase) |