Я создаю .NET Core Worker Service и хочу предоставить ASP.Net Core Web API для этой службы. Я использую .NET Core 3.0. Первоначально я планировал заменить IHostBuilder на IWebHostBuilder и добавить класс Startup, как обычное веб-приложение Asp.Net Core (хотя это, вероятно, упрощение).
Мой план состоял в том, чтобы просто попытаться заменить
public static IHostBuilder CreateHostBuilder(string[] args)
{
return Host.CreateDefaultBuilder(args)
.ConfigureServices((hostContext, services) =>
{
services.AddHostedService<Worker>();
});
}
на
public static IWebHostBuilder CreateHostBuilder(string[] args)
{
return WebHost.CreateDefaultBuilder(args)
.ConfigureServices(services =>
{
services.AddHostedService<Worker>();
}).UseStartup<Startup>();
}
, который может вообще не работать, но, по крайней мере, это отправная точка ... Что мешает мне попробовать этот подход, так это то, что я не могу реализовать свой класс Startup
, потому что IWebHostEnvironment
недоступен.
Вот мой
<PropertyGroup>
<TargetFramework>netcoreapp3.0</TargetFramework>
<UserSecretsId>dotnet-WorkerServices-0E977A2C-F0C8-49E7-B00A-5EB01B99FBEB</UserSecretsId>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore" Version="2.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Hosting.Server.Abstractions" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.Hosting" Version="3.0.0" />
<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="3.0.0" />
</ItemGroup>
Насколько я знаю, IWebHostEnvironment
должен быть в пакете Microsoft.Extensions.Hosting.Abstractions
nuget, но ссылка на него, похоже, не работает.
У кого-нибудь есть какие-либо идеи? -Спасибо!