다음을 통해 공유


MsmqIntegrationBinding 클래스

정의

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 바인딩을 구성하는 방법을 보여 줍니다.

다음 구성 파일 조각에서는 서비스에서 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)

적용 대상