MsmqIntegrationBinding 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
MsmqIntegrationBinding 클래스가 MSMQ(Microsoft 메시지 큐) 메시지를 WCF(Windows Communication Foundation) 메시지에 매핑합니다.
public ref class MsmqIntegrationBinding : System::ServiceModel::MsmqBindingBase
public class MsmqIntegrationBinding : System.ServiceModel.MsmqBindingBase
type MsmqIntegrationBinding = class
inherit MsmqBindingBase
Public Class MsmqIntegrationBinding
Inherits MsmqBindingBase
- 상속
예제
다음 구성 파일 조각에서는 클라이언트에서 MsmqIntegrationBinding 바인딩을 구성하는 방법을 보여 줍니다.
다음 구성 파일 조각에서는 서비스에서 MsmqIntegrationBinding 바인딩을 구성하는 방법을 보여 줍니다.
[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
다음 코드에서는 서비스에서 프로그래밍 방식으로 MsmqIntegrationBinding 바인딩을 사용하는 방법을 보여 줍니다.
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
다음 코드에서는 클라이언트에서 프로그래밍 방식으로 MsmqIntegrationBinding 바인딩을 사용하는 방법을 보여 줍니다.
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)
설명
중요
신뢰할 수 없는 데이터로 이 클래스에서 메서드를 호출하는 것은 보안상 위험합니다. 신뢰할 수 있는 데이터로만 이 클래스에서 메서드를 호출하세요. 자세한 내용은 모든 입력 유효성 검사를 참조하세요.
WCF 애플리케이션에 메시지를 받고 보내는 데 사용할 수 있도록이 바인딩을 사용할 수 있으며 기존 MSMQ에서 COM, 네이티브 c + + Api 또는 형식을 사용 하는 애플리케이션에서 정의 된 System.Messaging 네임 스페이스입니다.
생성자
MsmqIntegrationBinding() |
MsmqIntegrationBinding 클래스의 새 인스턴스를 초기화합니다. |
MsmqIntegrationBinding(MsmqIntegrationSecurityMode) |
지정된 MsmqIntegrationBinding을 사용하여 MsmqIntegrationSecurityMode 클래스의 새 인스턴스를 초기화합니다. |
MsmqIntegrationBinding(String) |
지정된 구성 바인딩 요소의 설정으로부터 MsmqIntegrationBinding 클래스의 새 인스턴스를 초기화합니다. |
속성
CloseTimeout |
전송 중 예외가 발생하기 전에 연결을 끊기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
CustomDeadLetterQueue |
애플리케이션별로 배달 못 한 편지 큐의 위치를 포함하는 URI를 가져오거나 설정합니다. 이 큐에는 만료되었거나 전송 또는 배달되지 못한 메시지가 보관됩니다. (다음에서 상속됨 MsmqBindingBase) |
DeadLetterQueue |
사용할 배달 못 한 편지 큐의 형식을 나타내는 열거형 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
Durable |
이 바인딩에서 처리하는 메시지가 지속적인지 아니면 일시적인지를 나타내는 부울 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
ExactlyOnce |
이 바인딩에서 처리하는 메시지가 정확하게 한 번 수신되는지를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
MaxReceivedMessageSize |
이 바인딩에서 처리하는 메시지의 최대 크기(바이트)를 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
MaxRetryCycles |
수신 애플리케이션으로 메시지 배달을 시도하는 최대 재시도 주기 수를 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
MessageVersion |
바인딩을 사용하여 구성된 클라이언트 및 서비스에서 사용하는 메시지 버전을 가져옵니다. (다음에서 상속됨 Binding) |
Name |
바인딩의 이름을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
Namespace |
바인딩의 XML 네임스페이스를 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
OpenTimeout |
전송 중에 예외가 발생하기 전에 연결을 설정하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
ReceiveContextEnabled |
받기 컨텍스트 동작이 요청되었는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
ReceiveErrorHandling |
포이즌 메시지의 처리 방법을 지정하는 열거형 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
ReceiveRetryCount |
애플리케이션 큐에서 읽은 메시지에 대해 즉시 배달을 시도하는 최대 횟수를 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
ReceiveTimeout |
연결이 끊어지기 전에 애플리케이션 메시지가 수신되지 않는 비활성 상태로 유지될 수 있는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
RetryCycleDelay |
배달하지 못한 메시지를 즉시 다시 배달하려고 시도할 때 재시도 주기 사이의 지연 시간을 지정하는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
Scheme |
이 바인딩의 체계를 반환합니다. (다음에서 상속됨 MsmqBindingBase) |
Security |
이 바인딩과 연결된 MsmqIntegrationSecurity를 가져옵니다. |
SendTimeout |
전송 중 예외가 발생하기 전에 쓰기 작업을 완료하기 위해 제공되는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 Binding) |
SerializationFormat |
메시지를 직렬화하거나 역직렬화하는 데 사용할 serialization 형식을 가져오거나 설정합니다. |
TimeToLive |
이 바인딩에서 처리하는 메시지가 만료되기 전까지 큐에 머무를 수 있는 기간을 나타내는 시간 간격을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
UseMsmqTracing |
이 바인딩에서 처리하는 메시지의 추적 여부를 지정하는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
UseSourceJournal |
이 바인딩에서 처리하는 메시지의 복사본을 소스 업무 일지 큐에 저장해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
ValidityDuration |
받기 컨텍스트 기능에 의해 메시지가 잠기는 기간을 지정하는 값을 가져오거나 설정합니다. (다음에서 상속됨 MsmqBindingBase) |
메서드
BuildChannelFactory<TChannel>(BindingParameterCollection) |
지정된 유형의 채널을 만들고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelFactory<TChannel>(Object[]) |
지정된 유형의 채널을 만들고 개체 배열에서 지정된 기능을 충족하는 채널 팩터리 스택을 클라이언트에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
지정된 유형의 채널을 허용하고 바인딩 매개 변수 컬렉션에서 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
지정된 유형의 채널을 허용하고 지정된 기능을 충족하는 채널 수신기를 서비스에 생성합니다. (다음에서 상속됨 Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
현재 바인딩이 개체 배열에서 지정된 요구 사항을 충족하는 채널 팩터리 스택을 클라이언트에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
현재 바인딩이 지정된 바인딩 매개 변수 컬렉션을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
현재 바인딩이 개체 배열에 지정된 기준을 충족하는 채널 수신기 스택을 서비스에 생성할 수 있는지 여부를 나타내는 값을 반환합니다. (다음에서 상속됨 Binding) |
CreateBindingElements() |
기본 프로필 스택의 바인딩 요소를 반환합니다. |
Equals(Object) |
지정된 개체가 현재 개체와 같은지 확인합니다. (다음에서 상속됨 Object) |
GetHashCode() |
기본 해시 함수로 작동합니다. (다음에서 상속됨 Object) |
GetProperty<T>(BindingParameterCollection) |
요청한 형식화된 개체가 있으면 바인딩 스택의 해당 계층에서 반환합니다. (다음에서 상속됨 Binding) |
GetType() |
현재 인스턴스의 Type을 가져옵니다. (다음에서 상속됨 Object) |
MemberwiseClone() |
현재 Object의 단순 복사본을 만듭니다. (다음에서 상속됨 Object) |
ShouldSerializeName() |
바인딩 이름을 serialize해야 하는지 여부를 반환합니다. (다음에서 상속됨 Binding) |
ShouldSerializeNamespace() |
바인딩 네임스페이스를 serialize해야 하는지 여부를 반환합니다. (다음에서 상속됨 Binding) |
ShouldSerializeSecurity() |
보안 정보를 serialize해야 하는지 여부를 지정하는 값을 가져옵니다. |
ToString() |
현재 개체를 나타내는 문자열을 반환합니다. (다음에서 상속됨 Object) |
명시적 인터페이스 구현
IBindingRuntimePreferences.ReceiveSynchronously |
들어오는 요청을 동기적으로 처리하는 것이 효과적인지 아니면 비동기적으로 처리하는 것이 효과적인지를 나타내는 값을 가져옵니다. (다음에서 상속됨 MsmqBindingBase) |