2009-04-09 3 views
3

메시지 대기열에서 읽는 웹 서비스를 작성했습니다. 이것은 Cassini에서 잘 작동합니다.ASP .Net 웹 서비스에서 MSMQ에 액세스 할 때의 사용 권한 오류

이 큐가 존재하지 않거나 사용자가 작업을 수행 할 수있는 권한이 없습니다 : 서비스가 대기열에 액세스하려고 할 때

은 이제 IIS에서 서비스를 배포 한 것을, 나는 오류 메시지가 나타납니다.

IIS 가상 디렉터리의 익명 액세스 사용자를 로컬 컴퓨터의 관리자 그룹 구성원 인 내 도메인 계정으로 설정했습니다. 나는이 동일한 사용자에게 네트워크 서비스와 ASPNET뿐만 아니라 대기열에 대한 모든 권한을 부여했습니다.

여전히 같은 오류 메시지가 나타납니다.

또한 가상 디렉터리에서 익명 액세스를 사용하지 않도록 설정하고 내 로그인 정보를 사용하여 서비스에 연결하는 방법을 사용해 보았습니다.

이 문제에 대한 도움을 주시면 대단히 감사하겠습니다.


나는 또한의 다양한 조합을 시도했다 :

및 testUsr 큐에 모든 권한을 갖는 . C : \

+0

는 또한의 다양한 조합을 시도했다 큐에 대한 전체 사용 권한. 사용자 및 ASPNET에 대한 사용 권한을 C : \ – RobD

답변

5

내 MSMQ 저장소 폴더에 사용자 및 ASPNET에 대한 사용 권한을 추가했습니다.이 문제를 이해하기 위해서는 코드 실행 프로세스가 IIS에서 Cassini와 다른 계정으로 실행되고 있어야합니다.

문제는 사용자가 로컬 및 도메인 관리자 그룹의 구성원이었고이 사용자가 큐에 대한 전체 사용 권한을 갖고있는 경우에도 내가 가장 한 사용자와 관계없이 항상 동일한 오류 메시지가 표시된다는 것입니다. 즉, 사용자에게 더 많은 권리를 할당하는 것은 거의 불가능합니다.

그것은 ... 큐보다는 경로 이름 (하여 mymachine \ QUEUENAME)하는 FORMATNAME를 사용하여 문제가 해결되었는지,

FORMATNAME 밝혀 : DIRECT = OS를 :하여 mymachine \ myQueue가

왜 이것이 정확한지 나는 확실치 않습니다. 읽기는 경로 이름을 사용할 때 AD 조회가 필요하다는 것을 보여 주었으며 테스트를 거친 사용자에게이 작업을 수행 할 수있는 권한이 있어야한다고 생각했지만 실제로는 누락 된 항목이있을 수 있습니다.

그러나 즉각적인 문제는 해결되었으며 저에게는 충분합니다. testUsr가 갖는 <인증 모드 = "윈도우"/> 및 <아이덴티티 가장 할 = "true"로는 userName = "myXPpc \ testUsr"암호 = "password1 인"/> :

+0

의 MSMQ 저장소 폴더에 추가했습니다. MSDN 문서가 모호합니다. 말 그대로 "Formatname :"부분을 포함시켜야합니다! – geedubb

관련 문제