Назад | Перейти на главную страницу

Есть ли способ настроить MSMQ для приема сообщений через HTTP на порт, отличный от 80 или 443?

У меня есть служба, которая получает сообщения MSMQ, а также размещает API. API должен работать на 80-м порту (не стоит вдаваться в подробности). Другие службы должны иметь возможность отправлять сообщения этой службе через HTTP. Следовательно, MSMQ должен иметь возможность получать сообщения через порт, отличный от 80 (или 443).

Эта страница в MSDN указывает, что можно отправлять сообщения через HTTP на порт, отличный от 80:

https://blogs.msdn.microsoft.com/johnbreakwell/2008/12/15/sending-msmq-messages-over-http-to-a-web-server-not-listening-on-port-80/

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

Например, вот адрес, по которому веб-служба назначения прослушивает порт 8080:

ПРЯМОЙ =HTTP://MyWebServer:8080/MSMQ/Private$/TestQueue

Это означает, что можно настроить сервер на другом конце для прослушивания произвольного порта. Это верно? Если да, то как этого добиться?

Это многоэтапный процесс:

  1. Установите API на веб-сайт по умолчанию (порт 80)
  2. Создайте дополнительный веб-сайт и установите TCP-порт на вкладке «Сервис» на желаемый номер порта.
  3. Остановить сайты
  4. Зайдите в расширенные настройки в IIS; измените идентификатор сайта веб-сайта по умолчанию на «99»
  5. Зайдите в расширенные настройки в IIS; измените идентификатор дополнительного веб-сайта на "1"
  6. Начать сайты
  7. Установите MSMQ (который можно установить только на Site ID 1)

Теперь у вас есть MSMQ и API, прослушивающие разные порты.