Katana/IIS 如何处理冲突。 WinService 中的 WebApi 和 IIS 中的网站 - 谁赢了?

How does Katana/IIS handle conflicts. WebApi in WinService and website in IIS - who wins?l

我的 IIS 配置了很多网站。现在我想在 Windows 服务中安装一个由 OWIN/Katana 托管的 WebApi(使用 topshelf)。我的 WebApi 可以使用与 IIS 相同的端口吗?

这行得通吗?如果我使用相同的名字怎么办 - 谁赢了?

感谢您的帮助 - 我在这里有点困惑。

拉尔西

理论上可以做到。

Windows 允许为不同的服务保留 URLs,这样他们就可以监听特定的 url。预订完成后,应用程序开始侦听请求,HTTP 服务器 API 将传入请求路由到不同的服务。这是如何发生的解释:

Routing Incoming Requests

使用 Web API 可以很容易地设置服务以侦听具体 URL,并且不会干扰其他 URL 的路由。

问题出在 IIS 中。 IIS 只允许您在根 URL 上设置站点,而不是在具体的 URL 路径上。没有关于如何完成此保留的具体文档。但是您可以使用 netsh 自己查看它:

  1. 打开命令提示符并 运行 netsh
  2. 你会看到netsh>提示
  3. 输入http。 prompr 现在应该显示为 netsh http>
  4. 输入show urlacl

这将向您显示机器中所有服务的 URL 保留的完整列表。注意,您可以从命令行将输出转储到文件 运行:netsh http show urlacl > c:\users\jotabe\documents\urlacls.txt

使用所有这些信息,您可以设置 IIS 和 Web API 服务,检查它们创建的注册,并根据链接文档上的规则查看您想要执行的操作是否有效.