다음을 통해 공유


NetMsmqBinding 클래스

정의

시스템 간 통신에 적합한 대기 중인 바인딩을 나타냅니다.

public ref class NetMsmqBinding : System::ServiceModel::MsmqBindingBase
public class NetMsmqBinding : System.ServiceModel.MsmqBindingBase
type NetMsmqBinding = class
    inherit MsmqBindingBase
Public Class NetMsmqBinding
Inherits MsmqBindingBase
상속
NetMsmqBinding

예제

다음 예제에서는 NetMsmqBinding 바인딩을 사용하도록 서비스를 구성하는 방법을 보여 줍니다.

먼저 구성 파일에서 구성하는 방법은 다음과 같습니다.

실제 서비스 코드는 다음과 같습니다.

// Define a service contract.
[ServiceContract(Namespace="http://Microsoft.ServiceModel.Samples")]
public interface IQueueCalculator
{
    [OperationContract(IsOneWay=true)]
    void Add(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Subtract(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Multiply(double n1, double n2);
    [OperationContract(IsOneWay = true)]
    void Divide(double n1, double n2);
}
' Define a service contract. 
<ServiceContract(Namespace:="http://Microsoft.ServiceModel.Samples")> _
Public Interface IQueueCalculator
    <OperationContract(IsOneWay:=True)> _
    Sub Add(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Subtract(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Multiply(ByVal n1 As Double, ByVal n2 As Double)
    <OperationContract(IsOneWay := True)> _
    Sub Divide(ByVal n1 As Double, ByVal n2 As Double)
End Interface
// Service class that implements the service contract.
// Added code to write output to the console window
public class CalculatorService : IQueueCalculator
{
    [OperationBehavior]
    public void Add(double n1, double n2)
    {
        double result = n1 + n2;
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Subtract(double n1, double n2)
    {
        double result = n1 - n2;
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Multiply(double n1, double n2)
    {
        double result = n1 * n2;
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result);
    }

    [OperationBehavior]
    public void Divide(double n1, double n2)
    {
        double result = n1 / n2;
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result);
    }
}
' Service class that implements the service contract.
' Added code to write output to the console window
Public Class CalculatorService
    Implements IQueueCalculator
    <OperationBehavior> _
    Public Sub Add(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Add
        Dim result As Double = n1 + n2
        Console.WriteLine("Received Add({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Subtract(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Subtract
        Dim result As Double = n1 - n2
        Console.WriteLine("Received Subtract({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Multiply(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Multiply
        Dim result As Double = n1 * n2
        Console.WriteLine("Received Multiply({0},{1}) - result: {2}", n1, n2, result)
    End Sub

    <OperationBehavior> _
    Public Sub Divide(ByVal n1 As Double, ByVal n2 As Double) Implements IQueueCalculator.Divide
        Dim result As Double = n1 / n2
        Console.WriteLine("Received Divide({0},{1}) - result: {2}", n1, n2, result)
    End Sub
End Class
// This is the hosting application. This code can appear directly in the service class as well.
class HostApp
{
    // Host the service within this EXE console application.
    public static void Main()
    {
        // Get MSMQ queue name from appsettings in configuration.
        string queueName = ConfigurationManager.AppSettings["queueName"];

        // Create the transacted MSMQ queue if necessary.
        if (!MessageQueue.Exists(queueName))
            MessageQueue.Create(queueName, true);

        // Get the base address that is used to listen for WS-MetaDataExchange requests.
        // This is useful to generate a proxy for the client.
        string baseAddress = ConfigurationManager.AppSettings["baseAddress"];

        // Create a ServiceHost for the CalculatorService type.
        using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), new Uri(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("Press <ENTER> to terminate service.");
            Console.WriteLine();
            Console.ReadLine();

            // Close the ServiceHostBase to shutdown the service.
            serviceHost.Close();
        }
    }
}
' This is the hosting application. This code can appear directly in the service class as well.
Friend Class HostApp
    ' Host the service within this EXE console application.
    Public Shared Sub Main()
        ' Get MSMQ queue name from appsettings in configuration.
        Dim queueName As String = ConfigurationManager.AppSettings("queueName")

        ' Create the transacted MSMQ queue if necessary.
        If (Not MessageQueue.Exists(queueName)) Then
            MessageQueue.Create(queueName, True)
        End If

        ' Get the base address that is used to listen for WS-MetaDataExchange requests.
        ' This is useful to generate a proxy for the client.
        Dim baseAddress As String = ConfigurationManager.AppSettings("baseAddress")

        ' Create a ServiceHost for the CalculatorService type.
        Using serviceHost As New ServiceHost(GetType(CalculatorService), New Uri(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("Press <ENTER> to terminate service.")
            Console.WriteLine()
            Console.ReadLine()

            ' Close the ServiceHostBase to shutdown the service.
            serviceHost.Close()
        End Using
    End Sub
End Class

설명

NetMsmqBinding 바인딩은 메시지 큐(MSMQ)를 전송으로 사용하여 큐에 대한 지원을 제공하며, 느슨하게 결합된 애플리케이션, 실패 격리, 로드 조정 및 연결이 끊긴 작업을 지원할 수 있도록 합니다. 이러한 기능 설명은 참조 하세요 큐 개요합니다.

Windows Communication Foundation (WCF)에서 제공 된 시스템 제공 바인딩 중 하나입니다. 서비스가 초기화될 때 구성 값이 설정되어야 하는 특정 고급 시나리오를 제외하고는, 구성 값을 사용하여 바인딩을 정의하고 코드 기반 접근 방식을 사용하지 않는 것이 좋습니다.

생성자

NetMsmqBinding()

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

NetMsmqBinding(NetMsmqSecurityMode)

지정된 보안 모드를 사용하여 NetMsmqBinding 클래스의 새 인스턴스를 초기화합니다.

NetMsmqBinding(String)

지정된 구성 바인딩 요소의 설정으로부터 NetMsmqBinding 클래스의 새 인스턴스를 초기화합니다.

속성

CloseTimeout

전송 중 예외가 발생하기 전에 연결을 끊기 위해 제공되는 시간 간격을 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
CustomDeadLetterQueue

애플리케이션별로 배달 못 한 편지 큐의 위치를 포함하는 URI를 가져오거나 설정합니다. 이 큐에는 만료되었거나 전송 또는 배달되지 못한 메시지가 보관됩니다.

(다음에서 상속됨 MsmqBindingBase)
DeadLetterQueue

사용할 배달 못 한 편지 큐의 형식을 나타내는 열거형 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
Durable

이 바인딩에서 처리하는 메시지가 지속적인지 아니면 일시적인지를 나타내는 부울 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
EnvelopeVersion

이 바인딩에서 처리한 메시지에 사용되는 SOAP의 버전을 가져옵니다.

ExactlyOnce

이 바인딩에서 처리하는 메시지가 정확하게 한 번 수신되는지를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
MaxBufferPoolSize

채널로부터 메시지를 수신하는 메시지 버퍼 관리자가 사용하도록 할당된 최대 메모리의 크기를 가져오거나 설정합니다.

MaxReceivedMessageSize

이 바인딩에서 처리하는 메시지의 최대 크기(바이트)를 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
MaxRetryCycles

수신 애플리케이션으로 메시지 배달을 시도하는 최대 재시도 주기 수를 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
MessageVersion

바인딩을 사용하여 구성된 클라이언트 및 서비스에서 사용하는 메시지 버전을 가져옵니다.

(다음에서 상속됨 Binding)
Name

바인딩의 이름을 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
Namespace

바인딩의 XML 네임스페이스를 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
OpenTimeout

전송 중에 예외가 발생하기 전에 연결을 설정하기 위해 제공되는 시간 간격을 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
QueueTransferProtocol

이 바인딩에서 사용하는 대기 중 통신 채널 전송을 나타내는 열거형 값을 가져오거나 설정합니다.

ReaderQuotas

이 바인딩과 연결된 XmlDictionaryReaderQuotas를 가져오거나 설정합니다.

ReceiveContextEnabled

받기 컨텍스트 동작이 요청되었는지 여부를 나타내는 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
ReceiveErrorHandling

포이즌 메시지의 처리 방법을 지정하는 열거형 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
ReceiveRetryCount

애플리케이션 큐에서 읽은 메시지에 대해 즉시 배달을 시도하는 최대 횟수를 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
ReceiveTimeout

연결이 끊어지기 전에 애플리케이션 메시지가 수신되지 않는 비활성 상태로 유지될 수 있는 시간 간격을 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
RetryCycleDelay

배달하지 못한 메시지를 즉시 다시 배달하려고 시도할 때 재시도 주기 사이의 지연 시간을 지정하는 값을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
Scheme

이 바인딩의 체계를 반환합니다.

(다음에서 상속됨 MsmqBindingBase)
Security

이 바인딩과 연결된 NetMsmqSecurity를 가져오거나 설정합니다.

SendTimeout

전송 중 예외가 발생하기 전에 쓰기 작업을 완료하기 위해 제공되는 시간 간격을 가져오거나 설정합니다.

(다음에서 상속됨 Binding)
TimeToLive

이 바인딩에서 처리하는 메시지가 만료되기 전까지 큐에 머무를 수 있는 기간을 나타내는 시간 간격을 가져오거나 설정합니다.

(다음에서 상속됨 MsmqBindingBase)
UseActiveDirectory

Active Directory를 사용하여 큐 주소를 변환해야 하는지 여부를 나타내는 값을 가져오거나 설정합니다.

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)
ShouldSerializeReaderQuotas()

ReaderQuotas 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다.

ShouldSerializeSecurity()

Security 속성이 기본값에서 변경되었으며 이를 serialize해야 하는지 여부를 나타내는 값을 반환합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)

명시적 인터페이스 구현

IBindingRuntimePreferences.ReceiveSynchronously

들어오는 요청을 동기적으로 처리하는 것이 효과적인지 아니면 비동기적으로 처리하는 것이 효과적인지를 나타내는 값을 가져옵니다.

(다음에서 상속됨 MsmqBindingBase)

적용 대상