2010-12-15 3 views
0

MSMQ와 통신하는 WCF 서비스가 있습니다. VS2010의 서비스 테스트 클라이언트 인터페이스에서 서비스를 실행하면 적절한 대기열에 메시지를 배치 할 수 있으며 모든 것이 정상입니다. IIS7에서 WCF 서비스를 호스팅하고 웹 응용 프로그램에서 서비스를 호출하면 모든 메시지가 트랜잭션 데드 - 레터 큐로 이동합니다.IIS에서 호스팅되는 WCF 및 MSMQ 문제

내가 알고있는 ID로 큐에 대한 특정 액세스 권한을 가진 응용 프로그램 풀과 사이트 (WCF 서비스를 호스팅하는 사이트)를 설치했습니다.

내가 확인할 수있는 다른 것이 있습니까, 아니면 잘못하고 있습니까?

업데이트 : 글쎄, 나는 뭔가 다른 일이 있다고 생각합니다. 큐에서 읽고 쓸 수있는 SUPER 간단한 서비스를 만들었습니다. 나는 더 깊이 파고 발견 할 필요가있다. 외모를 가진 모든 사람들에게 감사합니다.하지만 나는이 보고서를 열어 두어 다시보고 할 수있게하거나 다른 사람이 다른 아이디어를 가지고 있을지도 모릅니다. 나는 어떤 코드도 보지 않고 결정하는 것이 어렵다는 것을 알고 있지만, 나는 헤어질 것이 많기 때문에 게시하기가 어렵다.

+0

구성에 대해 설명하면 도움이됩니다. 예를 들어 WCF가 호스팅되는 컴퓨터의 로컬 MSMQ입니까? 그렇지 않은 경우 어떤 MSMQ에서 메시지가 배달되지 않은 편지에 있습니까? –

+0

예, WCF 서비스는 MSMQ와 동일한 컴퓨터에 있습니다. Transactional 데드 - 레터 큐를 메시지가있는 큐로 지정했습니다. 큐는 비 트랜잭션 (non-transactional)으로 설정되며 메시지는 비 트랜잭션 (non-transactional)으로 설정됩니다. – DDiVita

+0

코드에서 큐의 이름을 지정하기 위해 어떤 종류의 이름이 사용됩니까? 그것을 게시 할 수 있습니까 (실제 이름을 마스크하고 일반 형식으로 유지하지만 정확한 형식은 유지하십시오). 문제의 설명은 대기열이 원격 대기열로 취급되며 MSMQ가 원격 대기열을 찾지 못하여 메시지를 트랜잭션 데드 레터 대기열에 전달할 수 없음을 나타냅니다. –

답변

0

대기열을 코딩 한 사용자가 대기열을 올바르게 설정하지 않았 음을 알 수 있습니다.

0

코드 또는 클라이언트 app.config 파일에서 ExactlyOnce = false를 설정하십시오. 이 문제가 해결됩니다이

NetMsmqBinding binding = new NetMsmqBinding(NetMsmqSecurityMode.None); 
binding.ExactlyOnce = false; 

희망 같은

.

환호 Naushad

관련 문제