Как получить базовый URL-адрес в основном приложении AspNet без запроса?Как получить базовый url без доступа к запросу
Я знаю, что из запроса вы можете получить схему и хост (т.е. $"{Request.Scheme}//{Request.Host}"
даст что-то вроде https://localhost:5000), но можно ли получить эту информацию из другого места?
Другими словами, если у меня есть класс обслуживания, который должен создавать абсолютные URL-адреса, как я могу получить текущий URL-адрес, если нет HTTP-запроса?
UPDATE: Возможно, что сценарий даже не имеет смысла, так как хостинг URL является полностью внешним по отношению к приложению, и именно поэтому она имеет смысл только, чтобы извлечь его из хоста запроса ..
Только быстрое примечание, что в AspNetCore есть услуга, которая может быть введена в любой класс, чтобы получить базовый url из текущего запроса (в случае, если мы не находимся в контроллере с прямым доступом к Request). Просто вставляя «IHttpContextAccessor contextAccessor», а затем создавая «var url = $» {contextAccessor.HttpContext.Request.Scheme}: // {contextAccessor.HttpContext.Request.Host.ToUriComponent()} ";' Но как на https://github.com/aspnet/Hosting/issues/793, кажется, необходимо будет явно зарегистрировать его в DI: 'services.AddSingleton();' –
iberodev