【发布时间】: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 服务器。