Я работаю над решением, которое использует оба. NET Core 2.1 и. NET Core 3.1 для проектов. Мне недавно пришлось обновить Microsoft.Extensions.DependencyInjection
до версии 3.0.0 с 2.2.0. Тем не менее, теперь у меня возникает ошибка времени выполнения, когда я пытаюсь получить доступ к конечной точке:
System.InvalidOperationException: No service for type 'Microsoft.AspNetCore.Authentication.IAuthenticationHandlerProvider' has been registered.
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService[T](IServiceProvider provider)
at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Builder.Extensions.MapWhenMiddleware.Invoke(HttpContext context)
at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>g__Awaited|6_0(ExceptionHandlerMiddleware middleware, HttpContext context, Task task)
Теперь, когда я ищу в Интернете, я не могу найти ничего, кроме документации Microsoft и определения, упомянутого в сообщении GitHub где он просто говорит, что он должен provide the AuthenticationHandler
и что responsible for returning the correct handler instance for a given scheme and request.
соответственно.
Очевидно, что он прерывается при вызове Invoke из класса AuthenticationMiddleware, но я полагаю, что где-то читал, что вам не следует создавать свой легкая утилита аутентификации и что класс должен работать «из коробки», так что я не слишком уверен, как go решить эту проблему.
Боюсь, я не очень опытен аутентификация, поэтому я не уверен, какой код вам потребуется, чтобы определить проблемы. Если что-то упущено, пожалуйста, прокомментируйте, и я добавлю это. Любая помощь очень ценится.