Lamar вызывает ошибку 500.30 при использовании ServiceRegistry
Я использую Lamar в качестве DI для.Net Core (2.2) Web API.
Program.cs
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build().Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseLamar()
.UseStartup<Startup>();
}
Когда у меня есть следующий код в Startup.cs, программа запускается нормально.
public void ConfigureServices(IServiceCollection services)
{ }
Как только я поменяю метод на этот
public void ConfigureServices(ServiceRegistry services)
{ }
Запуск веб-API покажет
HTTP Error 500.30 - ANCM In-Process Start Failure
В Event Viewer есть пара ошибок.
Application '/LM/W3SVC/2/ROOT' with physical root 'C:\xxx\path\to\Web.API\' hit unexpected managed exception, exception code = '0xe0434352'. Please check the stderr logs for more information.
а также
Application '/LM/W3SVC/2/ROOT' with physical root 'C:\xxx\path\to\Web.API\' failed to load clr and managed application. CLR worker thread exited prematurely
1 ответ
Решение
Эта ошибка вызвана тем, что я только что заменил вызов ConfigureServices на ServiceRegistry. Я должен на самом деле использовать ConfigureContainer:
public void ConfigureContainer(ServiceRegistry services)
{ }