ASP .NET Core IIS Deploy IIS AspNetCore Module Error: CLR worker thread exited prematurely

10,955

In my case, the problem was that it was running on a 32bit app pool, but the app was published as Framework-Dependent with a target runtime of win-x64. When I switched it to win-x86 my app started working, so then I looked into it and discovered the problem with the app pool. I made a new app pool, disabled 32bit, switched my app to that pool, and republished, and then it worked.

Edited to add: I had a second app display the same behavior for a different reason. In the second case, it was because I was using Serilog to write a log file to the app's root directory. But because the app pool did not have write permissions for that directory, it was failing and throwing the 500.30 error. Granting write permissions for the app pool on its directory solved the issue.

Share:
10,955
aaliakinci
Author by

aaliakinci

Updated on July 20, 2022

Comments

  • aaliakinci
    aaliakinci almost 2 years

    I give IIS every feature in windows, but if your have advice please share me. Anyway I want deploy on IIS Lan server. But i cant. I working on two days this problems. I dont know how can fix this.I use ".net.5.0". My application codes like that

    Program.cs

    public class Program
    {
        public static void Main(string[] args)
        {
            var host = new WebHostBuilder()
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory())
                .UseIISIntegration().UseUrls("http://localhost:8080/")
                .UseStartup<Startup>()
                .Build();
        }  
    }
    

    Startup

    namespace EcommerceGastro.API
    {
        public class Startup
        {
            public Startup(IConfiguration configuration)
            {
                Configuration = configuration;
            }
    
            public IConfiguration Configuration { get; }
    
            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {
    
                services.AddDbContext<GastroDB>();
                services.AddScoped<IMainCategoryService, MainCategoryService>();
                services.AddScoped<IProductService, ProductService>();
                services.AddScoped<ICategoryService, CategoryService>();
                services.AddScoped<IUploadImageService, UploadImageService>();
                services.AddAutoMapper(typeof(AutoMapperProfile));
                services.AddControllers();
                services.AddControllers().AddNewtonsoftJson(opt =>
                {
                    opt.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
                });
            }
    
            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
            public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
            {
                if (env.IsDevelopment())
                {
                    app.UseDeveloperExceptionPage();
                }
    
                app.UseRouting();
                app.UseStaticFiles();
                //Initiliazer.HomePageControl().Wait();
                app.UseAuthorization();
    
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllers();
                });
            }
        }
    }
    
    

    appsettings.json

    {
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft": "Warning",
          "Microsoft.Hosting.Lifetime": "Information"
        }
      },
      "AllowedHosts": "*",
      "ConnectionStrings": { "DefaultConnection": "server=.; database=GastroDB; user id=sa; password=123;" }
    }
    
    
    

    My publish settings: enter image description here

    My iis settings: enter image description here

    enter image description here

    enter image description here

    Paylaşılmıyor = Dont share enter image description here

    Yetkilendirme = authority enter image description here

    My Error :

    Application '/LM/W3SVC/1/ROOT' with physical root 'C:\Users\Tuğçe\Desktop\iisDeneme\EcommerceGastro.API\bin\Release\net5.0\publish\' failed to load coreclr. Exception message:
    CLR worker thread exited prematurely
    
    Application '/LM/W3SVC/1/ROOT' with physical root 'C:\Users\Tuğçe\Desktop\iisDeneme\EcommerceGastro.API\bin\Release\net5.0\publish\' has exited from Program.Main with exit code = '0'. Please check the stderr logs for more information.
    

    And i browse this iis web app its open but look like :

    HTTP Error 500.30 - ASP.NET Core app failed to start
    Common solutions to this issue:
    The app failed to start
    The app started but then stopped
    The app started but threw an exception during startup
    Troubleshooting steps:
    Check the system event log for error messages
    Enable logging the application process' stdout messages
    Attach a debugger to the application process and inspect
    For more information visit: https://go.microsoft.com/fwlink/?LinkID=2028265