C#,ASP.NET Core 6,在Windows服务中托管多个API

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

更新:更具体地说,我想知道如何告诉服务器如何侦听,以便具有相同域但不同路径的特定 URL 只能指向托管 API 应用程序的多个 Windows 服务中的一个。

如果我使用“https://{server name}/{env}”,它应该向相同环境的应用程序发送请求 - 就像在 IIS 中一样。

我有一个托管在正在运行的 Windows 服务中的 ASP.NET Core 6 Web API,但我尚未找到一种有效的方法来托管同一应用程序的多个实例,但针对不同的环境,在同一服务器上。

服务器环境无法更改 - 它是 Windows Server 2019。

我有基本的 Kestrel 设置并应用了本地证书。

是否有人有任何可靠的想法可以在同一 Windows Server 操作系统上的 1 个或多个 Windows 服务中运行 ASP.NET Core Web API 应用程序的多个实例?

在更改托管 API 在单一类型环境下的一般运行方式的范式之前,我希望确保探索所有可能的选项。

所有使用正常方法设置基本路径的尝试都不起作用。它在 IIS 之外或作为 Azure 中的应用服务的运行方式不同。

c# asp.net-core windows-services .net-6.0
1个回答
0
投票

走开后,我又做了一次尝试:

  1. 首先,我在 Kestrel [appsettings] 中针对 Url 值添加了“https:///{app-path}”,但没有端口号。这引发了一个错误,表明不应这样做,但我应该使用 [app.UsePathBase("{app-path}")] 方法。 (这并不奇怪。这正是我所期望的。) 2:接下来,我将 Kestrel 设置中的 Url 值重置为“https://:{port}”值。然后我再次尝试使用 [app.UsePathBase()],但我在执行 [builder.Build()] 后立即添加了它。这终于在我的本地机器上运行了。我可以加载根响应页面并在“app-path”URL 上大摇大摆。

后续步骤:使用第二个实例及其自己的端口和基本路径在服务器上进行测试,以确保它们同时工作。

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