Ошибка прав доступа к MSMQ из веб-службы ASP .Net - PullRequest
3 голосов
/ 09 апреля 2009

Я написал веб-сервис, который читает из очереди сообщений . Это прекрасно работает под Кассини.

Теперь, когда я развернул службу под IIS, я получаю сообщение об ошибке, когда служба пытается получить доступ к очереди:

Очередь не существует или у вас недостаточно прав для выполнения операции.

Я назначил пользователя анонимного доступа в виртуальном каталоге IIS моей учетной записью домена, которая входит в группу администраторов на локальном компьютере. Я предоставил этому же пользователю полные разрешения в очереди, а также NETWORK SERVICE и ASPNET.

Я все еще получаю то же сообщение об ошибке.

Я также пытался отключить анонимный доступ к виртуальному каталогу и подключиться к службе, используя свои собственные данные для входа - безрезультатно.

Любая помощь с этой проблемой будет принята с благодарностью!


Я также пробовал различные комбинации:

а также С testUsr, имеющим полные разрешения в очереди. Я добавил разрешения для пользователя и ASPNET в папки хранилища MSMQ на C: \

1 Ответ

5 голосов
/ 14 апреля 2009

Мое понимание проблемы состоит в том, что процесс, пытающийся выполнить код, выполняется в IIS под другой учетной записью, чем в Cassini.

Проблема заключалась в том, что независимо от того, от какого пользователя я выдавал себя - я всегда получал одно и то же сообщение об ошибке - даже когда пользователь был членом группы локальных администраторов и администраторов домена, и у этого пользователя были полные разрешения в очереди. т.е. едва ли можно назначить больше прав пользователю.

Оказывается, что использование FormatName для очереди, а не пути (myMachine \ queueName) решило проблему ...

FORMATNAME: DIRECT = OS: моя_машина \ myQueue

Я не знаю точно, почему это так. Чтение показало, что когда используется имя пути, существует необходимость в поиске AD, и, хотя я думаю, что пользователи, с которыми я проводил тестирование, должны иметь права на это, возможно, чего-то не хватает.

Однако непосредственная проблема решена, и для меня этого достаточно.

...