IIS在同一端口上处理api和网站

问题描述 投票:0回答:1

我有一个用asp.net构建的API,并且使用OWIN.hosting.WebApp作为Windows服务在https://example.com/api/v1/myEndpoint进行托管。它通过netsh绑定到端口443。当我启动OWIN应用程序时,其完成方式如下:

Dim Address As String = "https://*:443/
WebApp.Start(Of Application)(Address)

我也使用SSL将我的网站托管在IIS中并绑定到端口443-https://example.com/web

它们都启动并正常运行。但似乎IIS阻止了对https://example.com/api/v1/myEndpoint的请求。 IIS运行时,邮递员无法访问API。如果我停止IIS并尝试完全相同的邮递员请求,则API会像往常一样返回数据。一旦启动IIS备份,API将不再响应。

是否可以添加重写规则以转发API请求API服务?

asp.net iis owin
1个回答
0
投票

我认为您无法在iis中托管asp.net Web API Windows服务。单个IIS服务器可以承载多个网站,但是为了使IIS正确分配HTTP请求,必须使用每个唯一的值来标识每个网站。对于IIS网站,它由三个属性组成,这些属性构成每个网站的唯一组合。这些是:

TCP端口号IP地址主机头

有关托管网站的信息以以下格式存储在IIS元数据库的ServerBindings属性中:IP:端口:主机名。因此,如果要在同一端口上托管多个网站,则必须使用唯一的Host标头或IP地址。

您可以在下面的链接中获取更多详细信息:

http://woshub.com/run-multiple-websites-on-the-same-port-and-ip-address-on-iis/

© www.soinside.com 2019 - 2024. All rights reserved.