2011-12-22 1 views
1

Queue1에서 메시지를 받고 Queue2로 메시지를 보내도록 지원해야하는 WPF 솔루션이 있습니다. 이 모든 것을 설정하고 초기 테스트에서 찾았습니다. 진행중인 NServiceBus 프로젝트를 두 개 이상 처리하려면 어떻게해야합니까?

하지만 입력 및 출력 프로젝트를 결합 할 때 나는 다음과 같은 오류 수 (그래서 출력 폴더에 두 프로젝트 어셈블리가) :

Host doesn't support hosting of multiple endpoints. Endpoint classes found: MySolution.Queue1.EndpointConfig, MyProject.Queue1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null,

MySolution.Queue2.EndpointConfig, MyProject.Queue2, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null You may have some old assemblies in your runtime directory.

Try right-clicking your VS project, and selecting 'Clean'.

내가이 잘못된에 대한 것인가를? 내 WPF 프로세스가 하나의 큐만 처리 할 수 ​​있습니까? (그럴 경우 너무 강하지는 않습니다.)

어쩌면 내가 잘못된 방향으로 가고 있을지도 모릅니다. 같은 큐에서 보내고 받아야하나요? 큐가 하나 이상의 메시지 유형을 처리 할 수 ​​있습니까?)

+0

"대기열이 둘 이상의 메시지 유형을 처리 할 수 ​​있습니까?" MSMQ에 대한 유일한 유형 제한은 트랜잭션 큐의 트랜잭션 메시지와 비 트랜잭션 큐의 비 트랜잭션 메시지입니다. –

+0

예 NSB는 물리적 엔드 포인트 당 하나의 입력 대기열 만 가질 수 있습니다. 그것이 견고 함과 어떻게 관련되는지 설명 할 수 있습니까? –

답변

1

내가 보는 프로세스는 실행중인 프로세스 당 대기열입니다. (또는 app 도메인을 수동으로 설정하는 경우에는 app 도메인이 더 구체적입니다. topshelf 쉘빙에서 여러 서비스를 작성하지 않는 한 가능하지는 않습니다.) 예, 동일한 대기열은 다른 유형의 메시지를 처리 ​​할 수 ​​있습니다. 들어오는 메시지 유형과 일치하는 모든 핸들러가 들어오는 메시지에 대해 호출됩니다. 대기열을보기 위해 nservicebus를 설정하는 것은 핸들러와 관련된 어셈블리가 아닌 프로세스 자체에 대한 코드/구성의 관심사입니다 (동일한 어셈블리에서 프로세스 및 핸들러를 가질 수 있음). 처리 할 메시지가 해당 대기열로 보내 지기만하면 하나의 대기열 만 필요합니다. 그게 당신이 찾고있는 답변을 잘 모르겠지만, 그 이유는 당신이 단지 하나의 대기열을 필요로 애플 리케이션 도메인에 대한 참조하십시오.

관련 문제