我有一个接收 MSMQ 消息的服务,并且还托管一个 API。该 API 必须在端口 80 上运行(为了便于讨论,这里不值得讨论)。其他服务必须能够通过 HTTP 向此服务发送消息。因此,MSMQ 必须能够在 80(或 443)以外的端口上接收消息。
MSDN 上的此页面表明可以通过 HTTP 向 80 以外的端口发送消息:
幸运的是这并不难。需要修改地址,就像使用 Internet Explorer 浏览监听不同端口的网站一样,因此只需在服务器名称后插入端口号即可。
例如,这是目标 Web 服务在端口 8080 上监听的地址:
直接=
HTTP://MyWebServer:8080/MSMQ/Private$/TestQueue
这表明可以配置另一端的服务器来监听任意端口。这是正确的吗?如果正确,那么如何实现?
答案1
这是一个多步骤的过程:
- 在默认网站(端口 80)上安装 API
- 创建一个额外的网站,并将服务选项卡上的 TCP 端口设置为所需的端口号。
- 停止网站
- 进入 IIS 的高级设置;将默认网站的站点 ID 更改为“99”
- 进入 IIS 的高级设置;将额外网站的站点 ID 更改为“1”
- 启动网站
- 安装 MSMQ(只能安装到站点 ID 1)
您现在已拥有在不同的端口上监听的 MSMQ 和 API。