Как получить URL хоста в фоновом сервисе в ASP.NET Core Web API? - PullRequest
1 голос
/ 08 июля 2019

У меня есть веб-API ядра Asp .Net, который будет запускать фоновый сервис для ежедневного планирования некоторых задач и отправлять некоторые письма. В почте мне нужно иметь URL API. Есть ли способ получить URL хоста в фоновых сервисах, кроме контроллеров.

Ответы [ 2 ]

2 голосов
/ 08 июля 2019

Фоновые службы работают вне области веб-запроса, следовательно, background service.Это означает, что нет доступного HTTP-контекста, из которого вы можете получить хост приложения.Я предлагаю вам создать настройку приложения, в которой вы настраиваете хост для текущей среды, например, appsettings.Staging.json, appsettings.Production.json и т. Д., И используете его в своей фоновой службе, вводя IConfiguration или определенный класс параметров.

0 голосов
/ 08 июля 2019
  • Добавьте services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>(); в конфигурацию набора ваших услуг
  • Внедрите IHttpContextAccessor в класс, необходимый для доступа к информации в
  • Вызовите IHttpContextAccessor.Connection.LocalIpAddress & IHttpContextAccessor.Connection.LocalPort
...