【问题标题】:MSMQ virtual directory not created under Default Web Site默认网站下未创建 MSMQ 虚拟目录
【发布时间】:2015-07-24 17:06:39
【问题描述】:

在应用服务器 (windows 2008 r2) 上,我们的站点 (XYZ) 托管在 IIS 中。我们的站点 XYZ 使用端口 80 和 443。我们已经从 IIS 中删除了默认网站,因为我们不需要它。现在我们想将 MSMQ 与 Internet 消息传递一起使用。

我在 Google 上搜索,发现 MSMQ 设置的设计方式是始终在默认网站下创建“MSMQ”虚拟目录。所以我手动添加了默认网站并为其设置了主机名(没有主机名它不会启动,因为 XYZ 也使用端口 80)并重置了 IIS。然后启用 MSMQ HTTP 功能,但是,“MSMQ”虚拟目录仍然在我们的站点 XYZ 下创建。

注意:XYZ 是在启用 MSMQ HTTP 支持之前创建的。我不确定顺序是否重要!

【问题讨论】:

    标签: http iis-7 msmq virtual-directory


    【解决方案1】:

    可能需要更改网站 ID。 这个Blog post 应该会有所帮助。

    【讨论】:

    • 在 windows 2008 中,可以使用 IIS 中的网站 > 高级设置更改站点 ID。所以我将 XYZ id 更改为 2 并将 Default 更改为 1。然后安装了 msmq http 支持。现在在默认网站下创建了 MSMQ 虚拟目录。重新启动服务器。正如预期的那样,XYZ 日志将进入 W3SVC2。但是,当我在 Internet Explorer 中导航到 server/MSMQ 时,我收到“无法显示此页面”错误。如果安装了 msmq 并且工作正常,我应该得到“501 - 标头值指定未实现的方法”。令人惊讶的是,日志条目是在 W3SVC2 下创建的并点击 XYZ。
    • 当我执行 http://server/MSMQ 时,它不会点击默认网站,而是点击 XYZ。通过停止 XYZ 确认这一点,发布它给出 404。注意 - 由于长度限制,我无法将此语句添加到第 1 条评论中。
    • 听起来在 IIS 元数据中有些混乱。您可能能够找出使用 ADSUTIL 并检查参数的原因。不幸的是,我没有任何真正的经验。
    • 对您的建议投了赞成票,因为在正确的站点下创建 MSMQ 目录肯定需要更改站点 ID。在下面提供了最终答案。
    【解决方案2】:

    看起来为默认网站设置主机名一团糟。我删除了主机名并将站点(默认)设置为在端口 8080 上工作。然后像 http://server:8080/MSMQ 一样引用它,并且 Internet Explorer 返回了我想要的 HTTP 501 错误。也尝试发布实际消息,是的,它有效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多