【问题标题】:How to get host URL in the background service in asp .net core web api?如何在asp .net core web api的后台服务中获取主机URL?
【发布时间】:2019-07-08 09:58:33
【问题描述】:

我有一个 Asp .Net 核心 web api,它将运行一个后台服务来每天安排一些任务并发送一些邮件。在邮件中,我需要有 api 的 url。除了控制器,还有什么方法可以在后台服务中获取主机URL。

【问题讨论】:

  • 为什么需要那个 URL?后台服务本身不需要 ULR 来调用 Web API 服务,它服务的一部分。您也不能在电子邮件中使用服务的 URL,因为它几乎肯定与防火墙、负载平衡器或 IIS 公开的公共 URL 相同。也可能为同一服务配置了许多不同的主机名/URL。
  • @PanagiotisKanavos 我想要运行后台服务的 Web api 托管的 URL

标签: asp.net-core .net-core asp.net-core-webapi


【解决方案1】:

后台服务在 Web 请求的范围之外运行,因此 后台 服务。这意味着没有可用的 HTTP 上下文,您可以从中获取应用程序的主机。我建议您创建一个应用程序设置,在其中为当前环境配置主机,例如appsettings.Staging.jsonappsettings.Production.json 等,并通过注入 IConfiguration 或特定选项类在后台服务中使用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-04
    相关资源
    最近更新 更多