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

Map WebApi directly to the website and not use IIS Application

我有很多网站api都是独立开发和部署的。

每个 API 都会有 ex:

的路由

api/FirstApi

api/SecondApi

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

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

www.myapis.com/FirstApiApp/api/FirstApi

但我想访问它。

EX: www.myapis.com/api/FirstApi

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

我想从 url.

中删除应用程序 FirstApiAppSecondApiApp

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

你可以有以下结构:

  • c:\inetpub\wwwroot\api\FirstApi
  • c:\inetpub\wwwroot\api\SecondApi

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

这假定您应该从 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,侦听两个不同的端口并将路由作业保留到应用程序层而不是基础结构。