【问题标题】:How does Katana/IIS handle conflicts. WebApi in WinService and website in IIS - who wins?lKatana/IIS 如何处理冲突。 WinService 中的 WebApi 和 IIS 中的网站 - 谁赢了?
【发布时间】:2015-05-07 07:50:35
【问题描述】:
我有一个配置了很多网站的 IIS。现在我想在 Windows 服务中安装一个由 OWIN/Katana 托管的 WebApi(使用 topshelf)。我的 WebApi 可以使用与 IIS 相同的端口吗?
这行得通吗?如果我使用相同的名字怎么办?谁赢了?
感谢您的帮助 - 我有点困惑。
拉西
【问题讨论】:
标签:
iis
asp.net-web-api
owin
katana
topshelf
【解决方案1】:
理论上是可以做到的。
Windows 允许为不同的服务保留 URL,以便它们可以监听特定的 URL。一旦预订完成,并且应用程序开始监听请求,HTTP 服务器 API 会将传入请求路由到不同的服务。以下是关于如何发生的解释:
Routing Incoming Requests
使用 Web API,很容易设置服务以侦听具体的 URL,并且不会干扰其他 URL 的路由。
问题出在 IIS 中。 IIS 仅允许您在根 URL 上设置站点,而不是在具体的 URL 路径上。没有关于如何完成这项保留的具体文件。但是您可以使用 netsh 自己查看:
- 打开命令提示符并运行
netsh
- 你会看到
netsh>提示
- 输入
http。提示现在应该是netsh http>
- 输入
show urlacl
这将向您显示机器中所有服务的 URL 保留的完整列表。注意,您可以将输出转储到从命令行运行它的文件:netsh http show urlacl > c:\users\jotabe\documents\urlacls.txt
使用所有这些信息,您可以设置 IIS 和 Web API 服务,检查由它们创建的注册,并根据链接文档上的规则查看您想要执行的操作是否有效。