有没有办法配置 MSMQ 以通过 80 或 443 以外的端口上的 HTTP 接收消息?

有没有办法配置 MSMQ 以通过 80 或 443 以外的端口上的 HTTP 接收消息?

我有一个接收 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 浏览监听不同端口的网站一样,因此只需在服务器名称后插入端口号即可。

例如,这是目标 Web 服务在端口 8080 上监听的地址:

直接=HTTP://MyWebServer:8080/MSMQ/Private$/TestQueue

这表明可以配置另一端的服务器来监听任意端口。这是正确的吗?如果正确,那么如何实现?

答案1

这是一个多步骤的过程:

  1. 在默认网站(端口 80)上安装 API
  2. 创建一个额外的网站,并将服务选项卡上的 TCP 端口设置为所需的端口号。
  3. 停止网站
  4. 进入 IIS 的高级设置;将默认网站的站点 ID 更改为“99”
  5. 进入 IIS 的高级设置;将额外网站的站点 ID 更改为“1”
  6. 启动网站
  7. 安装 MSMQ(只能安装到站点 ID 1)

您现在已拥有在不同的端口上监听的 MSMQ 和 API。

相关内容