Сделайте метод ConfigureServices асинхронным в Startup.cs
Мне нужно добавить пару ожидающих функций в ConfigureServices в Startup.cs, и я столкнулся с проблемой.
System.InvalidOperationException Не удалось найти необходимые услуги. Пожалуйста, добавьте все необходимые службы, вызвав "IServiceCollection.AddMvc()" внутри вызова "IApplicationBuilder.ConfigureServices(...)" или "IApplicationBuilder.UseMvc(...)" в стартовом коде приложения.
Как видно из приведенного ниже кода, AddMvc и UseMvc находятся в правильном месте, однако я все равно получаю эту ошибку.
public async void ConfigureServices(IServiceCollection services)
{
...
await manager.Initialize();
var data = await manager.GetData();
...
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env,ILoggerFactory loggerFactory)
{
...
app.UseMvc();
....
}
Можно ли настроить функцию ConfigigureServices async?
Ответы
Ответ 1
Нет, вы не можете. Это приведет к расовому состоянию.
Вместо этого подумайте о том, чтобы сделать вашу операцию синхронной или использовать .Wait()
/.Result
(в зависимости от того, возвращает ли метод async данные или нет) до тех пор, пока не завершится асинхронная задача.