MsmqIntegrationBinding 클래스

정의

MsmqIntegrationBinding 클래스는 MICROSOFT 메시지 큐(MSMQ) 메시지를 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 구성하는 방법을 보여 줍니다.

다음 구성 파일 조각은 서비스에서 바인딩을 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)

설명

Important

신뢰할 수 없는 데이터를 사용하여 이 클래스에서 메서드를 호출하는 것은 보안 위험입니다. 신뢰할 수 있는 데이터로만 이 클래스의 메서드를 호출합니다. 자세한 내용은 모든 입력 유효성 검사참조하세요.

이 바인딩을 사용하여 WCF 애플리케이션이 COM, 네이티브 C++ API 또는 네임스페이스에 정의된 System.Messaging 형식을 사용하는 기존 MSMQ 애플리케이션과 메시지를 주고받을 수 있습니다.

생성자

Name Description
MsmqIntegrationBinding()

MsmqIntegrationBinding 클래스의 새 인스턴스를 초기화합니다.

MsmqIntegrationBinding(MsmqIntegrationSecurityMode)

지정된 클래스를 사용하여 클래스의 MsmqIntegrationBinding 새 인스턴스를 초기화합니다 MsmqIntegrationSecurityMode.

MsmqIntegrationBinding(String)

지정된 구성 바인딩 요소의 MsmqIntegrationBinding 설정에서 클래스의 새 인스턴스를 초기화합니다.

속성

Name Description
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)

메서드

Name Description
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)

명시적 인터페이스 구현

Name Description
IBindingRuntimePreferences.ReceiveSynchronously

들어오는 요청을 동기적으로 또는 비동기적으로 보다 효율적으로 처리할 수 있는지 여부를 나타내는 값을 가져옵니다.

(다음에서 상속됨 MsmqBindingBase)

적용 대상