Ошибки создания MSMQ: компьютер установки рабочей группы не поддерживает операцию / внутренний сертификат очереди сообщений пользователя не существует
Это сводит меня с ума, поэтому, если бы кто-нибудь смог мне помочь, я был бы очень благодарен!
Я пытаюсь отправить сообщение в общую очередь с сервера в домене на контроллер домена, но я получаю сообщение об ошибке:
«Установочный компьютер рабочей группы не поддерживает эту операцию».
Я настроил MSMQ на контроллере домена и создал очередь сообщений в папке Public Queues.
Я знаю, что подобный вопрос был задан ранее:
Почему MSMQ считает, что я нахожусь на компьютере рабочей группы?
но я попробовал все то, что было предложено, но я все еще получаю ту же ошибку.
Итак, чтобы рассказать вам о том, что я пробовал из предложений:
a) Интеграция AD не была выбрана в качестве опции установки - при установке msmq она была выбрана
б) интеграция AD была выбрана, но не удалось инициализировать; проверить журналы событий - я проверил свои журналы событий, и у меня есть сообщение - Выбираемое обновление MSMQ-ADIntegration пакета MSMQ Server пакет был успешно включен.
c) Проверьте наличие потерянных объектов в Active Directory - я проверил LostAndFound Directory в Active Directory - пользователи и компьютеры, чтобы проверить отсутствие потерянных объектов в AD.
и я следовал этим инструкциям: http://technet.microsoft.com/en-us/library/cc730960.aspx
Я также удалил, перезапустил и переустановил, и еще раз проверил, что у меня нет потерянных объектов.
Также все ли серверы, которые отправляют сообщение, должны иметь установленный msmq? на данный момент у меня есть только на контроллере домена, который я думал, будет достаточно.
Редактировать 1: я добавил msmq ко всем серверам, которые отправляют сообщения (они сбалансированы по нагрузке, так что это может быть любой из них), у них уже установлен msmq, но без общедоступных очередей, поэтому я удалил и установил заново (отметив все соответствующие поля при выборе msmq - Служба интеграции / маршрутизации службы каталогов и т. д., и теперь у них есть открытые очереди. Теперь я получаю новую ошибку:
«Внутренний сертификат очереди сообщений пользователя не существует».
Изменить 2:
Я все еще работаю над этим, но добился определенного прогресса - когда я проверил свой контроллер домена на наличие центра сертификации, он был там, но когда я посмотрел на IIS, в нем отсутствовал виртуальный каталог CertServ - см. Ссылку для объяснения:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms755466%28v=vs.85%29.aspx
Как только я разберусь с этой проблемой, я буду запрашивать сертификат компьютера для каждого из моих серверов, как показано ниже:
http://technet.microsoft.com/en-us/library/cc740173%28v=ws.10%29.aspx
Надеюсь, это сработает!
РЕДАКТИРОВАТЬ 3: хорошо, так что по причине мусорного интернета я не могу запросить сертификат, но, надеюсь, это будет исправлено в следующий день. Поэтому я попытался выполнить самоконтроль, который ничего не изменил, и отключил UseAuthentication = true, UseEncryption = true, снял флажок с проверкой подлинности и установил шифрование по желанию. Я больше не получаю сообщение об ошибке, которое наводит меня на мысль, что с аутентификацией что-то не так (что касается Active Directory). Однако даже при том, что это не сработало в том смысле, что сообщение об ошибке не отображалось и страница, которую я ожидал показать на моем сайте это показано. В моей публичной очереди сообщений контроллера домена нет сообщений ...
Я сделал это локально, где это работает, кажется, когда я пытаюсь сделать это в домене, который вызывает проблемы.
Изменить 4:
Просто напишите, что вы знаете мой прогресс в этом вопросе - я хотел убедиться, что сообщение отправлялось на контроллер домена, поэтому я посмотрел на мониторинг MSMQ End2End - так на каждом из веб-серверов (сообщение отправлено с) и Контроллер домена (сообщение отправлено) в окне просмотра событий & gt; Журналы приложений и служб & gt; Microsift & GT; Windows> MSMQ> End2End I включил ведение журнала.
Когда я снова попытался отправить сообщение на веб-сервер, было зарегистрировано 2 события End2End:
Message with ID CN=msmq,CN=ETAILWEB03,CN=Computers,DC=Etail,DC=local\7 was sent to queue PUBLIC=d7ee680c-11ec-4d9a-aa31-528dcc9b1eba
Message sent over network
И на контроллере домена в событиях End2End:
Message came over networkИз этого, кажется, пришло сообщение, поэтому я сейчас смотрю, где сообщение потеряно:
https://groups.google.com/forum/?fromgroups=#!topic/microsoft.public.msmq.networking/88FYCvO2YwQ
Изменить 5:
Хорошо, так следующее:
MSMQ сообщения получены, но не доставлены Windows 2008 R2
Я добавил анонимного пользователя и смог добавить сообщение в очередь, и это здорово, но мне нужно сделать шаг назад и дать пользователям полный контроль над тем, от кого должны поступать сообщения - так, каково имя пользователя веб-серверов, а также для безопасности мне нужно, чтобы сообщения были аутентифицированы, поэтому вернемся к одному из моих предыдущих вопросов.
Изменить 6:
Все еще боролся с этим, но получил немного дальше ...
На контроллере домена (где находится центр сертификации и принимающий MSMQ) автоматическая регистрация сертификата настроена, и я запускаю следующее на веб-серверах (которые отправляют сообщения) - run - gpupdate / force и перезапускает каждый веб-сервер.
Я убедился, что на всех веб-серверах проверена проверка подлинности и выбрано тело в свойствах очереди сообщений. Я также обновил сертификаты на всех веб-серверах, чтобы они обновлялись, и теперь я получаю следующую ошибку:
Неверное имя пути в очереди.
Я посмотрел на следующую ссылку:
Изменить 7:
Хорошо, чтобы попытаться заставить это работать, казалось, что там, где пользователь веб-приложения не распознавался, на веб-серверах я переходил на IIS & gt; Бассейны приложений & gt; Расширенные настройки & gt; Идентификационные данные и установить идентификатор для сетевой службы. После того, как это было сделано, я больше не получаю сообщение об ошибке, когда запускаю свое приложение, но сообщение, похоже, не находится в общей очереди, где я ожидал бы, поэтому теперь я снова посмотрю на end2end, чтобы узнать, смогу ли я узнать куда это делось
Fix
Как только IIS был установлен в Network Service, я дважды проверил, что отправляемое сообщение было аутентифицировано, и контроллер домена, который получил сообщение, проверил аутентификацию. Я дал полный доступ всем в моей публичной очереди, и это сработало!
Честно говоря, на этом пути было много проб и ошибок, но, надеюсь, этот пост поможет другим - благодаря Джону Б. большая часть материала, который я прочитал на эту тему, была опубликована им в той или иной форме!