WCF-NetMsmq 송신 포트 구성 방법
WCF-NetMsmq 송신 포트는 BizTalk 관리 콘솔을 사용하거나 프로그래밍 방식으로 구성할 수 있습니다.
구성 속성
BizTalk Explorer 개체 모델은 TransportTypeData 읽기/쓰기 속성이 있는 ITransportInfo라는 송신 포트에 대한 어댑터별 인터페이스를 노출합니다. 이 속성은 이름/값 쌍 XML 문자열 형식의 WCF-NetMsmq 송신 포트 구성 속성 모음을 허용합니다.
ITransportInfo 인터페이스의 TransportTypeData 속성은 필요하지 않습니다. 이 속성을 설정하지 않으면 어댑터에서는 다음 표에 표시된 WCF-NetMsmq 송신 포트 구성에 대한 기본값을 사용합니다.
다음 표는 WCF-NetMsmq 송신 포트에 대해 BizTalk 탐색기 개체 모델에서 설정할 수 있는 구성 속성을 보여 줍니다.
속성 이름 | Type | Description |
---|---|---|
ID | XML Blob 예제: <identity> <userPrincipalName value="username@contoso.com" /> </Id> |
이 송신 포트에 필요한 서비스의 ID를 지정합니다. 이 설정을 통해 송신 포트가 서비스를 인증할 수 있습니다. 클라이언트와 서비스 간의 핸드셰이크 프로세스에서 WCF(Windows Communication Foundation) 인프라는 예상되는 서비스의 ID가 이 요소의 값과 일치하는지 확인합니다. 기본값은 빈 문자열입니다. |
StaticAction | String | 보내는 메시지에 대한 SOAPAction 헤더 필드를 지정합니다. 이 속성은 메시지 컨텍스트 속성 WCF를 통해 설정할 수도 있습니다 . 파이프라인 또는 오케스트레이션의 작업입니다. 단일 작업 형식과 작업 매핑 형식의 두 가지 방법으로 이 값을 지정할 수 있습니다. 이 속성을 단일 작업 형식(예: http://contoso.com/Svc/Op1 )으로 설정하는 경우 보내는 메시지에 대한 SOAPAction 헤더는 항상 이 속성에 지정된 값으로 설정됩니다.이 속성을 작업 매핑 형식으로 설정하면 나가는 SOAPAction 헤더가 BTS에 의해 결정 됩니다. 작업 컨텍스트 속성입니다. 예를 들어 이 속성이 다음 XML 형식 및 BTS로 설정된 경우입니다. Operation 속성은 Op1로 설정되고, WCF 송신 어댑터는 나가는 SOAPAction 헤더에 'http://contoso.com/Svc/Op1''를 사용합니다. <BtsActionMapping> <Operation Name="Op1" Action="http://contoso.com/Svc/Op1" /> <Operation Name="Op2" Action="http://contoso.com/Svc/Op2" /> </BtsActionMapping> 보내는 메시지가 오케스트레이션 포트에서 오는 경우 오케스트레이션 인스턴스는 BTS를 동적으로 설정합니다 . 포트의 작업 이름을 가진 Operation 속성입니다. 나가는 메시지가 콘텐츠 기반 라우팅으로 라우팅되는 경우 BTS를 설정할 수 있습니다 . 파이프라인 구성 요소의 작업 속성입니다. 기본값은 빈 문자열입니다. |
OpenTimeout | System.TimeSpan | 채널 열기 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 기본값: 00:01:00 |
SendTimeout | System.TimeSpan | 송신 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 간청-응답 송신 포트를 사용하는 경우 서비스가 큰 메시지를 반환하더라도 이 값은 전체 상호 작용이 완료되기 위한 시간 범위를 지정합니다. 기본값: 00:01:00 |
CloseTimeout | System.TimeSpan | 채널 닫기 작업이 완료될 수 있도록 제공되는 시간 간격을 나타내는 시간 범위 값을 지정합니다. 기본값: 00:01:00 |
EnableTransactional | 부울 | 대상 서비스에 대한 메시지 큐 유형(트랜잭션 또는 비전송)을 지정합니다. 이 속성이 True로 설정된 경우 이 송신 포트에서 처리된 각 메시지는 한 번만 배달되고 보낸 사람에게 배달 실패 알림이 표시됩니다. 트랜잭션 송신 포트를 통해 메시지를 보내려면 서비스의 지속성 및 정확히Once 바인딩 요소를 모두 True로 설정해야 합니다. 이 속성을 False로 설정하면 배달 보증 없이 메시지가 전송됩니다. 기본값: True |
DeadLetterQueue | 열거형 - 없음 - 배달 못한 편지 큐를 사용할 수 없습니다. - 시스템 - 시스템 전체의 배달 못한 편지 큐를 사용합니다. - 사용자 지정 - 사용자 지정 배달 못한 편지 큐를 사용합니다. |
응용 프로그램으로 배달하지 못한 메시지가 전송될 배달 못한 편지 큐를 지정합니다. 배달 못한 편지 큐에 배달된 메시지에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 보내기, 바인딩 탭을 참조하세요. 참고: 사용자 지정 배달 못한 편지 큐는 Windows Vista와 함께 릴리스된 MSMQ(메시지 큐) 4.0에서만 지원됩니다. 기본값: 시스템 |
CustomDeadLetterQueue | String | 애플리케이션별 배달 못 한 편지 큐의 위치에 대해 net.msmq 스키마 를 사용하여 정규화된 URI를 지정합니다. 여기서 만료되었거나 전송 또는 배달에 실패한 메시지가 배치됩니다. net.msmq://localhost/deadLetterQueueName)를 지정합니다. 배달 못 한 편지 큐는 송신 애플리케이션의 큐 관리자에서 관리하는 큐로, 배달하지 못한 만료된 메시지가 보관됩니다. DeadLetterQueue 속성이 Custom으로 설정된 경우 이 속성이 필요합니다. 기본값은 빈 문자열입니다. |
timeToLive | System.TimeSpan | 메시지가 만료되어 배달 못한 편지 큐에 배치되기까지 메시지 유효 기간의 시간 범위를 지정합니다. 이 속성은 시간이 중요한 메시지가 이 송신 포트에서 처리되기 전에 기한이 지나지 않도록 하기 위해 설정됩니다. 이 송신 포트에서 지정된 시간 간격 내에 처리하지 않은 큐의 메시지는 만료된 것으로 간주됩니다. 만료된 메시지는 배달 못한 편지 큐라는 특수 큐로 전송됩니다. 배달 못한 편지 큐의 위치는 DeadLetterQueue 속성으로 설정됩니다. 기본값: 1.00:00:00 |
UseSourceJournal | 부울 | 이 송신 포트에서 처리한 메시지 복사본을 소스 저널 큐에 저장할지 여부를 지정합니다. 기본값: False |
SecurityMode | 열거형 - 없음 - 메시지 - 전송 - 모두 SecurityMode 속성의 멤버 이름에 대한 자세한 내용은 UI 지침 및 개발자 API 네임스페이스 참조의 WCF-NetMsmq 전송 속성 대화 상자, 보내기, 보안 탭의 보안 모드 속성을 참조하세요. |
사용할 보안 유형을 지정합니다. 기본값: 전송 |
MsmqAuthenticationMode | 열거형 - 없음 - WindowsDomain - 인증서 MsmqAuthenticationMode 속성의 멤버 이름에 대한 자세한 내용은 WCF-NetMsmq 전송 속성 대화 상자의 MSMQ 인증 모드 속성, UI 지침의 보내기, 보안 탭 및 개발자 API 네임스페이스 참조를 참조하세요. |
메시지가 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 전송 속성 대화 상자, 보내기, 보안 탭의 알고리즘 제품군 속성을 참조하세요. |
메시지 암호화 및 키 랩 알고리즘을 지정합니다. 이러한 알고리즘은 보안 정책 언어(WS-SecurityPolicy) 사양에 지정된 알고리즘에 매핑됩니다. 기본값: Basic256 |
ClientCertificate | String | 서비스에 대해 이 송신 포트를 인증하는 데 사용할 X.509 인증서의 손 도장(Thumbprint)을 지정합니다. ClientCredentialsType 속성이 인증서로 설정된 경우 이 속성이 필요합니다. 이 속성에 사용할 인증서는 현재 사용자 위치의 내 저장소에 설치해야 합니다. 기본값은 빈 문자열입니다. |
ServiceCertificate | 문자열 | 송신 포트에서 메시지를 보낼 서비스를 인증하는 데 사용할 X.509 인증서의 손 도장(Thumbprint)을 지정합니다. 이 속성에 사용할 인증서는 로컬 컴퓨터 위치의 기타 사람 저장소에 설치해야 합니다. 기본값은 빈 문자열입니다. |
AffiliateApplicationName | 문자열 | Enterprise SSO(Single Sign-On)에 사용할 관련 응용 프로그램을 지정합니다. 기본값은 빈 문자열입니다. |
UseSSO | 부울 | 대상 서버 인증을 위한 클라이언트 자격 증명을 검색하는 데 Single Sign-On을 사용할지 여부를 지정합니다. 기본값: False |
UserName | String | UseSSO 속성이 False로 설정된 경우 대상 서버에서 인증에 사용할 사용자 이름을 지정합니다. 이 속성에 대해 도메인\사용자 형식을 사용하지 않아도 됩니다. 기본값은 빈 문자열입니다. |
암호 | String | UseSSO 속성이 False로 설정된 경우 대상 서버에서 인증에 사용할 암호를 지정합니다. 기본값은 빈 문자열입니다. |
OutboundBodyLocation | 열거형 - UseBodyElement - BizTalk 메시지 본문 부분을 사용하여 보내는 메시지에 대한 SOAP 본문 요소의 콘텐츠를 만듭니다. - UseTemplate - OutboundXMLTemplate 속성에 제공된 템플릿을 사용하여 보내는 메시지에 대한 SOAP Body 요소의 콘텐츠를 만듭니다. OutboundBodyLocation 속성을 사용하는 방법에 대한 자세한 내용은 WCF 어댑터에 대한 메시지 본문 지정을 참조하세요. |
나가는 WCF 메시지의 SOAP Body 요소에 대한 데이터 선택을 지정합니다. 기본값: UseBodyElement |
OutboundXMLTemplate | String OutboundXMLTemplate 속성을 사용하는 방법에 대한 자세한 내용은 WCF 어댑터에 대한 메시지 본문 지정을 참조하세요. |
보내는 메시지의 SOAP 본문 요소 내용에 대한 XML 형식 템플릿을 지정합니다. OutboundBodyLocation 속성이 UseTemplate으로 설정된 경우 이 속성이 필요합니다. 기본값은 빈 문자열입니다. |
BizTalk 관리 콘솔을 사용하여 WCF-NetMsmq 송신 포트 구성
BizTalk 관리 콘솔에서 WCF-NetMsmq 송신 포트 어댑터 변수를 설정할 수 있습니다. 송신 포트에 대한 속성을 설정하지 않으면 이전 표에 표시된 WCF-NetMsmq 송신 포트 구성의 기본값이 사용됩니다.
WCF-NetMsmq 송신 포트에 대한 변수 구성
BizTalk 관리 콘솔에서 새 송신 포트를 만들거나 기존 송신 포트를 두 번 클릭하여 수정합니다. 자세한 내용은 송신 포트를 만드는 방법을 참조하세요. 모든 송신 포트 옵션을 구성하고 UI 지침 및 개발자 API 네임스페이스 참조의 일반 탭의 전송 섹션에서 형식 옵션에 대해 WCF-NetMsmq를 지정합니다.
일반 탭의 전송 섹션에서 형식 옆에 있는 구성 단추를 클릭합니다.
WCF-NetMsmq 전송 속성 대화 상자의 일반 탭에서 WCF-NetMsmq 송신 포트에 대한 엔드포인트 주소, 서비스 ID 및 SOAPAction 헤더를 구성합니다. 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" />
<UseSSO vt="11">0</UseSSO>
<CloseTimeout vt="8">00:01:00</CloseTimeout>
<MessageClientCredentialType vt="8">Windows</MessageClientCredentialType>
<SendTimeout vt="8">00:01:00</SendTimeout>
<OutboundXmlTemplate vt="8"><bts-msg-body xmlns="http://www.microsoft.com/schemas/bts2007" encoding="xml"/></OutboundXmlTemplate>
<MsmqProtectionLevel vt="8">Sign</MsmqProtectionLevel>
<OpenTimeout vt="8">00:01:00</OpenTimeout>
<UseSourceJournal vt="11">0</UseSourceJournal>
<AlgorithmSuite vt="8">Basic256</AlgorithmSuite>
<SecurityMode vt="8">Transport</SecurityMode>
<CustomDeadLetterQueue vt="8" />
<ClientCertificate vt="8" />
<MsmqEncryptionAlgorithm vt="8">RC4Stream</MsmqEncryptionAlgorithm>
<StaticAction vt="8">http://www.northwindtraders.com/Service/Operation</StaticAction>
<MsmqSecureHashAlgorithm vt="8">Sha1</MsmqSecureHashAlgorithm>
<EnableTransaction vt="11">-1</EnableTransaction>
<TimeToLive vt="8">1.00:00:00</TimeToLive>
<MsmqAuthenticationMode vt="8">WindowsDomain</MsmqAuthenticationMode>
<DeadLetterQueue vt="8">System</DeadLetterQueue>
<OutboundBodyLocation vt="8">UseBodyElement</OutboundBodyLocation>
</CustomProps>
다음 코드 조각은 WCF-NetMsmq 송신 포트를 만드는 방법을 보여 줍니다.
// Use BizTalk Explorer object model to create new WCF-NetMsmq send port.
string server = System.Environment.MachineName;
string database = "BizTalkMgmtDb";
string connectionString = string.Format("Server={0};Database={1};Integrated Security=true", server, database);
string transportConfigData = @"<CustomProps>
<StaticAction vt=""8"">http://www.northwindtraders.com/Service/Operation</StaticAction>
<OpenTimeout vt=""8"">00:01:00</OpenTimeout>
</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 static one-way send port
SendPort sendPort = application.AddNewSendPort(false, false);
sendPort.Name = "SampleSendPort";
sendPort.PrimaryTransport.TransportType = explorer.ProtocolTypes["WCF-NetMsmq"];
sendPort.PrimaryTransport.Address = "net.msmq://mycomputer/private/samplequeue";
sendPort.PrimaryTransport.TransportTypeData = transportConfigData; // propertyData; // need to change
sendPort.SendPipeline = explorer.Pipelines["Microsoft.BizTalk.DefaultPipelines.PassThruTransmit"];
// Save
explorer.SaveChanges();
참고 항목
WCF 어댑터 속성 스키마 및 속성
WCF 어댑터에 대한 인증서 설치
WCF 어댑터에 대한 메시지 본문 지정
WCF-NetMsmq 어댑터 구성
WCF 어댑터 컨텍스트 속성을 사용하여 동적 송신 포트 구성