将WebApi直接映射到网站,而不是使用IIS应用程序

时间:2017-01-30 16:12:10

标签: api asp.net-web-api iis-7

我有很多独立开发和部署的webapis。

每个API都有ex:

的路由

api/FirstApi

api/SecondApi

这些将部署在www.myapis.com/下。

如果我为IIS中的每个api创建应用程序,我将按如下方式访问api

www.myapis.com/FirstApiApp/api/FirstApi

但我想以其身份访问它。

EX:www.myapis.com/api/FirstApi

或者:www.myapis.com/api/SecondApi

我想从网址中删除应用FirstApiAppSecondApiApp

是否可以在IIS中配置此模式?

1 个答案:

答案 0 :(得分:0)

您可以拥有以下结构:

  • C:\的Inetpub \ wwwroot的\ API \ FirstApi
  • C:\的Inetpub \ wwwroot的\ API \ SecondApi

然后在IIS中有一个映射到c:\inetpub\wwwroot的网站,在api文件夹中你有2个应用程序配置如下:

enter image description here

这假设您应该从Web API中删除api/FirstApi路由并将其直接映射到/,因为第一部分将由IIS提供。如果您不这样做,请求将变为www.myapis.com/api/FirstApi/api/FirstApi,这不是此处的目标。

据说,我个人建议你不要这样做。更好的方法是在前面有一个反向代理,例如nginx或HAProxy,它会将请求路由到/api/FirstApi,例如backend_node:8080,并请求/api/SecondApibackend_node:8181。这将允许您在IIS中的两个单独的网站中部署Web API,并在两个不同的端口上进行侦听,并将路由作业保留在应用程序层而不是基础结构中。