将 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.
中删除应用程序 FirstApiApp
或 SecondApiApp
是否可以在 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/SecondApi
到 backend_node:8181
。这将允许您在 IIS 中的两个单独网站中部署 Web API,侦听两个不同的端口并将路由作业保留到应用程序层而不是基础结构。
我有很多网站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.
中删除应用程序FirstApiApp
或 SecondApiApp
是否可以在 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/SecondApi
到 backend_node:8181
。这将允许您在 IIS 中的两个单独网站中部署 Web API,侦听两个不同的端口并将路由作业保留到应用程序层而不是基础结构。