WCF-NetMsmq 수신 위치 구성 방법
WCF-NetMsmq 수신 위치는 BizTalk 관리 콘솔을 사용하거나 프로그래밍 방식으로 구성할 수 있습니다.
구성 속성
BizTalk 탐색기 개체 모델을 사용하면 수신 위치를 프로그래밍 방식으로 만들고 구성할 수 있습니다. BizTalk Explorer 개체 모델은 TransportTypeData 읽기/쓰기 속성이 있는IReceiveLocation 수신 위치 구성 인터페이스를 노출합니다. 이 속성은 이름-값 쌍 XML 문자열 형식의 WCF-NetMsmq 수신 위치 구성 PropertyBag을 허용합니다. BizTalk Explorer 개체 모델에서 이 속성을 설정하려면 IReceiveLocation 인터페이스의 InboundTransportLocation 속성을 설정해야 합니다.
IReceiveLocation 인터페이스의 TransportTypeData 속성을 설정할 필요가 없습니다. 이 속성을 설정하지 않으면 WCF-NetMsmq 어댑터에서는 다음 표에 표시된 WCF-NetMsmq 수신 위치 구성에 대한 기본값을 사용합니다.
다음 표에는 WCF-NetMsmq 수신 위치에 대해 BizTalk 탐색기 개체 모델에서 설정할 수 있는 구성 속성이 나열되어 있습니다.
속성 이름 | Type | Description |
---|---|---|
ID | XML Blob 예제: <identity> <userPrincipalName value="username@contoso.com" /> </Id> |
이 수신 위치에서 제공하는 서비스의 ID를 지정합니다. Identity 속성에 대해 지정할 수 있는 값은 보안 구성에 따라 다릅니다. 이러한 설정을 통해 클라이언트가 이 수신 위치를 인증할 수 있습니다. 클라이언트와 서비스 간의 핸드셰이크 프로세스에서 WCF(Windows Communication Foundation) 인프라는 예상되는 서비스의 ID가 이 요소의 값과 일치하는지 확인합니다. 기본값은 빈 문자열입니다. |
OpenTimeout | System.TimeSpan | 채널 열기 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 기본값: 00:01:00 |
SendTimeout | System.TimeSpan | 송신 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 기본값: 00:01:00 |
CloseTimeout | System.TimeSpan | 채널 닫기 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 기본값: 00:01:00 |
MaxReceivedMessageSize | 정수 | 유선으로 수신할 수 있는 메시지의 최대 크기(헤더 포함)를 바이트 단위로 지정합니다. 메시지 크기는 각 메시지에 할당된 메모리 용량으로 제한됩니다. 이 속성을 사용하여 Dos(서비스 거부) 공격에 노출될 가능성을 줄일 수 있습니다. 기본값: 65536 |
EnableTransaction | 부울 | 메시지 큐 유형을 트랜잭션 또는 비트랜잭션으로 지정합니다. 이 속성을 선택하는 경우 각 메시지는 한 번만 배달되고 보낸 사람에게 배달 실패 알림이 전송됩니다. 트랜잭션 송신 포트를 통해 메시지를 보내려면 클라이언트의 지속성 및 정확히Once 바인딩 요소를 모두 True로 설정해야 합니다. 이 속성을 지우면 메시지가 배달 보증 없이 전송됩니다. 참고: 이 수신 위치에서 트랜잭션 큐를 사용하는 경우 이 속성을 선택해야 합니다. 기본값: False |
OrderedProcessing | 부울 | 메시지를 순차적으로 처리할 것인지 여부를 지정합니다. 이 속성을 선택하면 이 수신 위치는 주문 배달 옵션이 로 설정된 BizTalk 메시징 또는 오케스트레이션 송신 포트와 함께 사용할 때 주문된 메시지 배달 을 수용합니다 True . EnableTransaction 속성이 True로 설정된 경우에만 선택할 수 있습니다.주문 배달 옵션에 대한 자세한 내용은 참고 항목에서 적절한 topics 참조하세요. 이 속성을 True로 설정하면 WCF-NetMsmq 수신 위치는 어댑터를 단일 스레드로 만들어 큰 메시지를 처리할 때 리소스 사용을 최적화합니다. 기본값: False |
MaxConcurrentCalls | 정수 | 단일 서비스 인스턴스에 대한 동시 호출 수를 지정합니다. 한도를 초과하는 호출은 대기됩니다. 이 속성의 범위는 0에서 Int32.MaxValue까지입니다. 기본값: 200 |
SecurityMode | 열거형 - 없음 - 메시지 - 전송 - 모두 SecurityMode 속성의 멤버 이름에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 보안 탭의 보안 모드 속성을 참조하세요. |
사용할 보안 유형을 지정합니다. 기본값: 전송 |
MsmqAuthenticationMode | 열거형 - 없음 - WindowsDomain - 인증서 MsmqAuthenticationMode 속성의 멤버 이름에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 보안 탭에서 MSMQ 인증 모드 속성을 참조하세요. |
메시지가 MSMQ 전송에 의해 인증되는 방식을 지정합니다. 기본값: WindowsDomain |
MsmqProtectionLevel | 열거형 - 없음: 보호가 없습니다. - 서명: 메시지가 서명되었습니다. - EncryptAndSign: 메시지가 암호화되고 서명됩니다. 이 보호 수준을 사용하려면 MSMQ용 Active Directory 통합을 사용하도록 설정해야 합니다. |
메시지가 MSMQ 전송 수준에서 보호되는 방식을 지정합니다. 암호화는 메시지 무결성을 보장하지만 서명 및 암호화는 메시지 무결성 및 부인 없음을 보장합니다. 기본값: 기호 |
MsmqSecureHashAlgorithm | 열거형 - MD5 - SHA1 - SHA25 - Sha512 |
메시지 다이제스트를 확인하기 위해 사용할 해시 알고리즘을 지정합니다. MsmqProtectionLevel 속성이 None으로 설정된 경우에는 이 속성을 사용할 수 없습니다. 기본값: SHA1 |
MsmqEncryptionAlgorithm | 열거형 - RC4Stream - Aes |
메시지 큐 관리자 간 메시지 전송 시 메시지 암호화에 사용할 알고리즘을 지정합니다. 이 속성은 MsmqProtectionLevel 속성이 EncryptAndSign으로 설정된 경우에만 사용할 수 있습니다. 기본값: RC4Stream |
MessageClientCredentialType | 열거형 - 없음 - Windows - 사용자 - 인증서 MessageClientCredentialType 속성의 멤버 이름에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 보안 탭의 메시지 클라이언트 자격 증명 형식 속성을 참조하세요. |
메시지 기반 보안을 사용하여 클라이언트 인증 수행에 사용할 자격 증명 유형을 지정합니다. 기본값: Windows |
AlgorithmSuite | 열거형 AlgorithmSuite 속성의 멤버 이름에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 보안 탭의 Algorithm suite 속성을 참조하세요. |
메시지 암호화 및 키 랩 알고리즘을 지정합니다. 이러한 알고리즘은 보안 정책 언어(WS-SecurityPolicy) 사양에 지정된 알고리즘에 매핑됩니다. 기본값: Basic256 |
ServiceCertificate | 문자열 | 클라이언트가 서비스 인증에 사용하는 이 수신 위치에 대한 X.509 인증서의 손 도장(Thumbprint)을 지정합니다. 이 속성에 사용할 인증서는 현재 사용자 위치의 내 저장소에 설치해야 합니다. 참고: 이 수신 위치를 호스팅하는 수신 처리기에 대한 사용자 계정의 현재 사용자 위치에 서비스 인증서를 설치해야 합니다. 기본값은 빈 문자열입니다. |
InboundBodyLocation | 열거형 - UseBodyElement - 들어오는 메시지의 SOAP 본문 요소 콘텐츠를 사용하여 BizTalk 메시지 본문 부분을 만듭니다. Body 요소에 자식 요소가 두 개 이상 있는 경우 첫 번째 요소만 BizTalk 메시지 본문 부분이 됩니다. - UseEnvelope - 들어오는 메시지의 전체 SOAP 봉투 에서 BizTalk 메시지 본문 부분을 만듭니다. - UseBodyPath - InboundBodyPathExpression 속성의 본문 경로 식을 사용하여 BizTalk 메시지 본문 부분을 만듭니다. 본문 경로 식은 들어오는 메시지의 SOAP Body 요소의 직접 자식 요소에 대해 평가됩니다. 이 속성은 간청-응답 포트에 대해서만 유효합니다. InboundBodyLocation 속성을 사용하는 방법에 대한 자세한 내용은 WCF 어댑터에 대한 메시지 본문 지정을 참조하세요. |
들어오는 WCF 메시지의 SOAP Body 요소에 대한 데이터 선택을 지정합니다. 기본값: UseBodyElement |
InboundBodyPathExpression | 문자열 InboundBodyPathExpression 속성을 사용하는 방법에 대한 자세한 내용은 WCF 어댑터 속성 스키마 및 속성을 참조하세요. |
본문 경로 식을 지정하여 BizTalk 메시지 본문을 만드는 데 사용되는 들어오는 메시지의 특정 파트를 식별합니다. 이 본문 경로 식은 들어오는 메시지의 SOAP 본문 노드의 직접 자식 요소에 대해 평가됩니다. 이 본문 경로 식이 둘 이상의 노드를 반환하는 경우 첫 번째 노드만 BizTalk 메시지 본문에 선택됩니다. InboundBodyLocation 속성이 UseBodyPath로 설정된 경우 이 속성이 필요합니다. 기본값은 빈 문자열입니다. |
InboundNodeEncoding | 열거형 - Base64 - Base64 인코딩. - 16진수 - 16진수 인코딩. - 문자열 - 텍스트 인코딩 - UTF-8. - XML - WCF 어댑터는 InboundBodyPathExpression의 본문 경로 식에서 선택한 노드의 외부 XML을 사용하여 BizTalk 메시지 본문을 만듭니다. |
WCF-NetMsmq 수신 어댑터가 InboundBodyPathExpression에 지정된 본문 경로 식으로 식별된 노드를 디코딩하는 데 사용하는 인코딩 유형을 지정합니다. InboundBodyLocation 속성이 UseBodyPath로 설정된 경우 이 속성이 필요합니다. 기본값: XML |
DisableLocationOnFailure | 부울 | 수신 파이프라인 오류 또는 라우팅 오류로 인해 인바운드 처리가 실패하는 수신 위치를 해제할지 여부에 대해서 지정합니다. 기본값: False |
SuspendMessageOnFailure | 부울 | 수신 파이프라인 오류 또는 라우팅 오류로 인해 인바운드 처리되지 못한 요청 메시지를 일시 중단할지 여부를 지정합니다. 기본값: True |
IncludeExceptionDetailInFaults | 부울 | 디버깅용으로 클라이언트에게 반환되는 SOAP 오류 정보에 관리되는 예외 정보를 포함할지 여부에 대해서 지정합니다. 기본값: False |
BizTalk 관리 콘솔을 사용하여 WCF-NetMsmq 수신 위치 구성
BizTalk 관리 콘솔에서 WCF-NetMsmq 수신 위치 어댑터 변수를 설정할 수 있습니다. 수신 위치에서 속성을 설정하지 않으면 BizTalk 관리 콘솔에 설정된 기본 수신 핸들러 값이 사용됩니다.
참고
다음 절차를 완료하기 전에 수신 포트를 이미 추가한 상태여야 합니다. 자세한 내용은 수신 포트를 만드는 방법을 참조하세요.
참고
WCF 클라이언트 및 WCF-NetMsmq 수신 위치의 바인딩 구성은 일치해야 합니다. 두 구성이 일치하지 않으면 WCF-NetMsmq 수신 위치에서 들어오는 메시지가 손실될 수 있습니다.
WCF-NetMsmq 수신 위치에 대한 변수 구성
BizTalk 관리 콘솔에서 BizTalk Server관리를 확장하고BizTalk 그룹을 확장한 다음 애플리케이션을 확장한 다음 수신 위치를 만들 애플리케이션을 확장합니다.
BizTalk 관리 콘솔의 왼쪽 창에서 수신 포트 노드를 클릭합니다. 그런 다음 오른쪽 창에서 기존 수신 위치와 연결되어 있거나 새 수신 위치와 연결하려는 수신 포트를 마우스 오른쪽 단추로 클릭하고 속성을 클릭합니다.
수신 포트 속성 대화 상자의 왼쪽 창에서 수신 위치를 선택한 다음 오른쪽 창에서 기존 수신 위치를 두 번 클릭하거나 새로만들기를 클릭하여 새 수신 위치를 만듭니다.
수신 위치 속성 대화 상자의 형식 옆의 전송 섹션에서 드롭다운 목록에서 WCF-NetMsmq를 선택한 다음 구성을 클릭합니다.
WCF-NetMsmq 전송 속성 대화 상자의 일반 탭에서 WCF-NetMsmq 수신 위치에 대한 엔드포인트 주소 및 서비스 ID를 구성합니다. WCF-NetMsmq 전송 속성 대화 상자의 일반 탭에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 일반 탭을 참조하세요.
WCF-NetMsmq 전송 속성 대화 상자의 바인딩 탭에서 제한 시간 및 트랜잭션 속성을 구성합니다. WCF-NetMsmq 전송 속성 대화 상자의 바인딩 탭에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 바인딩 탭을 참조하세요.
WCF-NetMsmq 전송 속성 대화 상자의 보안 탭에서 WCF-NetMsmq 수신 위치의 보안 기능을 정의합니다. WCF-NetMsmq 전송 속성 대화 상자의 보안 탭에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 보안 탭을 참조하세요.
WCF-NetMsmq 전송 속성 대화 상자의 메시지 탭에서 SOAP 본문 요소에 대한 데이터 선택을 지정합니다. WCF-NetMsmq 전송 속성 대화 상자의 메시지 탭에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 수신, 메시지 탭을 참조하세요.
프로그래밍 방식으로 WCF-NetMsmq 수신 위치 구성
다음 형식을 사용하여 속성을 설정할 수 있습니다.
<CustomProps>
<ServiceCertificate vt="8" />
<InboundBodyLocation vt="8">UseBodyElement</InboundBodyLocation>
<InboundBodyPathExpression vt="8" />
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<IncludeExceptionDetailInFaults vt="11">0</IncludeExceptionDetailInFaults>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<MaxConcurrentCalls vt="3">16</MaxConcurrentCalls>
<SecurityMode vt="8">Transport</SecurityMode>
<OrderedProcessing vt="11">0</OrderedProcessing>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>
<MaxReceivedMessageSize vt="3">2097152</MaxReceivedMessageSize>
<MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>
<DisableLocationOnFailure vt="11">0</DisableLocationOnFailure>
<MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>
<SuspendMessageOnFailure vt="11">-1</SuspendMessageOnFailure>
<EnableTransaction vt="11">-1</EnableTransaction>
<InboundNodeEncoding vt="8">Xml</InboundNodeEncoding>
<MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>
</CustomProps>
다음 코드 조각은 WCF-NetMsmq 수신 위치를 만드는 방법을 보여 줍니다.
// Use BizTalk Explorer object model to create new WCF-NetMsmq receive location
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<InboundBodyLocation vt=""8"">UseBodyElement</InboundBodyLocation>
<UseSSO vt=""11"">0</UseSSO>
<Identity vt=""8"">
<identity>
<userPrincipalName value=""username@contoso.com"" />
</identity>
</Identity>
</CustomProps>";
//requires project reference to \Program Files\Microsoft BizTalk Server 2009\Developer Tools\Microsoft.BizTalk.ExplorerOM.dll
BtsCatalogExplorer explorer = new Microsoft.BizTalk.ExplorerOM.BtsCatalogExplorer();
explorer.ConnectionString = connectionString;
// Add a new BizTalk application
Application application = explorer.AddNewApplication();
application.Name = "SampleBizTalkApplication";
// Save
explorer.SaveChanges();
// Add a new one-way receive port
IReceivePort receivePort = application.AddNewReceivePort(false);
receivePort.Name = "SampleReceivePort";
// Add a new one-way receive location
IReceiveLocation receiveLocation = receivePort.AddNewReceiveLocation();
receiveLocation.Name = "SampleReceiveLocation";
// Find a receive handler for WCF-NetMsmq
int i = 0;
for(i=0; i < explorer.ReceiveHandlers.Count; ++i)
{
if("WCF-NetMsmq" == explorer.ReceiveHandlers[i].TransportType.Name)
break;
}
receiveLocation.ReceiveHandler = explorer.ReceiveHandlers[i];
receiveLocation.Address = "net.msmq://mycomputer/private/sampleQueue";
receiveLocation.ReceivePipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruReceive"];
receiveLocation.TransportType = explorer.ProtocolTypes["WCF-NetMsmq"];
receiveLocation.TransportTypeData = transportConfigData;
// Save
explorer.SaveChanges();
참고 항목
BizTalk 호스트 및 호스트 인스턴스를 관리하는WCF 수신 어댑터에 대한 게시 서비스 메타데이터WCF 어댑터에 대한 메시지 본문을 지정하는 WCF 어댑터에 대한 인증서 설치서비스 계정 및 암호를 변경하는 방법 트랜잭션 메시지 큐 및 Active Directory 퍼블릭 및 프라이빗 큐내에서 메시지를 보내고 검색하는WCF-NetMsmq 어댑터정렬 배달 구성