【问题标题】:"HTTP Error 500.30 - ASP.NET Core app failed to start" with IISIIS 出现“HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动”
【发布时间】:2021-09-11 19:09:51
【问题描述】:

我部署了一个具有发布功能的 API .NET Core 5 服务。当我使用命令dotnet <service-name>.dll 使用cmd 启动服务时,它运行但我无法发出API 请求。当我使用 IIS 启动它时,它会显示以下错误

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

我在互联网上搜索了这个错误,但没有找到解决问题的方法。这是我的program.cs

public static IHostBuilder CreateHostBuilder(string[] args) =>
    Host.CreateDefaultBuilder(args)
        .ConfigureWebHostDefaults(webBuilder =>
        {
            webBuilder
            .UseNLog()
            //.UseContentRoot(Directory.GetCurrentDirectory())
            .UseKestrel()
            .UseIISIntegration()
            .UseStartup<Startup>();
            //.Build();
        });

来自 EventViewer 的错误

.NET 运行时

Application: w3wp.exe
CoreCLR Version: 5.0.721.25508
.NET Version: 5.0.7
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
   at Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.<>c__DisplayClass2_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at LogService.Program.Main(String[] args) in C:\DEV\LogService\LogService.API\Program.cs:line 19

IIS AspNetCode 模块 V2

Application '/LM/W3SVC/2/ROOT' with physical root 'C:\LogService\' hit unexpected managed exception, exception code = '0xe0434352'. First 30KB characters of captured stdout and stderr logs:
crit: Microsoft.AspNetCore.Hosting.Diagnostics[6]
      Application startup exception
      System.InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
         at Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.<>c__DisplayClass2_0.<Configure>b__0(IApplicationBuilder app)
         at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
         at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
Unhandled exception. System.InvalidOperationException: Application is running inside IIS process but is not configured to use IIS server.
   at Microsoft.AspNetCore.Server.IIS.Core.IISServerSetupFilter.<>c__DisplayClass2_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.HostFilteringStartupFilter.<>c__DisplayClass0_0.<Configure>b__0(IApplicationBuilder app)
   at Microsoft.AspNetCore.Hosting.GenericWebHostService.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token)
   at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host)
   at LogService.Program.Main(String[] args) in C:\DEV\LogService\LogService.API\Program.cs:line 19

Application '/LM/W3SVC/2/ROOT' with physical root 'C:\LogService\' failed to load coreclr. Exception message:
CLR worker thread exited prematurely

【问题讨论】:

  • 日志中是否有任何错误? (如果您跳过 IIS,您可能会发现更容易获取日志,只是为了开始。)
  • 当你在 VS/VS Code 中运行时,它可以工作吗?
  • 我遇到了这种情况,因为我安装了一个错误版本的 .NET Core 2.2 托管包。它冲洗掉了所有其他运行时。我不记得是哪一个了,但我将它更新到了最新的 2.2.x 版本,并且为所有其他运行时处理了它。老实说,这可能是很多事情......
  • 您是否将 .NET CLR 版本设置为应用程序池的无托管代码?
  • @JonSkeet 我记录了 3 个错误,但它们是相同类型的应用程序:w3wp.exe CoreCLR 版本:5.0.721.25508 .NET 版本:5.0.7 描述:由于未处理,进程已终止例外。异常信息:System.InvalidOperationException:应用程序正在 IIS 进程内运行,但未配置为使用 IIS 服务器。

标签: c# .net iis .net-core


【解决方案1】:

它适用于当前配置

public static IHostBuilder CreateHostBuilder(string[] args) =>
        Host.CreateDefaultBuilder(args)
            .ConfigureWebHostDefaults(webBuilder =>
            {
                webBuilder
                .UseNLog()
                //.UseContentRoot(Directory.GetCurrentDirectory())
                //.UseKestrel()
                .UseIISIntegration()
                .UseIIS()
                .UseStartup<Startup>();
                //.Build();
            });

【讨论】:

    猜你喜欢
    • 2021-12-13
    • 1970-01-01
    • 2021-07-16
    • 2023-01-09
    • 2022-10-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2021-05-23
    相关资源
    最近更新 更多