HTTP 错误 500.30 - ASP.NET Core 5 应用程序无法启动
Posted
技术标签:
【中文标题】HTTP 错误 500.30 - ASP.NET Core 5 应用程序无法启动【英文标题】:HTTP Error 500.30 - ASP.NET Core 5 app failed to start 【发布时间】:2021-07-16 13:06:54 【问题描述】:我部署了一个具有以下设置的 .NET Core 5 应用:
网站显示错误:
HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动 常见解决方案 对于这个问题:
应用启动失败 应用启动后停止 应用已启动,但在启动过程中引发异常故障排除步骤:
检查系统事件日志中的错误消息 启用记录应用程序进程的标准输出消息 将调试器附加到应用程序进程并检查欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?LinkID=2028265
是什么导致了这个错误?
【问题讨论】:
尝试在 azure 上部署它,然后在门户上找到应用程序日志。 【参考方案1】:错误背后可能有几个原因,您只能通过调试来识别。您可以尝试使用以下步骤调试此错误:
-
使用 CMD 导航到应用程序的根目录
使用命令
dotnet run (yourApplicationName).dll
运行应用程序
如果有任何错误,它们应该出现在输出中。
或者,您可以检查“事件查看器”(使用 Windows 搜索搜索事件查看器)并导航到
Windows 日志 应用更新:
dotnet (yourApplicationName).dll
并检查 http://localhost:5000/ 是否有错误
【讨论】:
【参考方案2】:检查配置文件中hostingModel的属性值是否为OutOfProcess。如果 hostingModel 属性的值为 InProcess,请尝试将其更改为 OutOfProcess 并重新启动项目。
【讨论】:
这是我的 .csjproj PropertyGroup我最近在将 .net core 5 应用程序部署到 IIS 时遇到了这个问题。我正在为我的各种环境使用环境变量,并且部署的 web.config 缺少 xml 标签。
改变这一行:
<aspNetCore processPath="dotnet" arguments=".\<your>.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"/>
到:
<aspNetCore processPath="dotnet" arguments=".\<your>.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess">
<environmentVariables>
<environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Local" />
</environmentVariables>
</aspNetCore>
这解决了我的 500.30 问题。
我接受了@Mohammed https://***.com/a/59390437/6155498的指导
【讨论】:
【参考方案4】:打开Windows Event Viewer,找到错误信息并点击,打开Detail标签,你会看到异常。
【讨论】:
【参考方案5】:这是一个非常模糊的错误消息,其背后可能有 100 多种不同的原因。检查您的服务器错误日志。
就我而言重新部署针对 64 位平台的应用程序解决了这个问题。
【讨论】:
【参考方案6】:我在 Windows 10 中的本地 IIS 上运行应用程序时遇到此错误,然后我为 IIS_IUSRS 授予 App_Data 和 Logs 文件夹的完全控制权限,所以它可以工作。
【讨论】:
【参考方案7】:今天遇到了这个问题(NET 5 应用,win-x64 目标运行时)。我设法通过禁用 IIS 应用程序池中的 32 位应用程序支持来修复它(见下面的屏幕截图):
一旦我从启用 32 位应用程序:true 切换到 false,HTTP 错误 500.30 就消失了。 p>
有关更多信息,请参阅我博客上的this post。
【讨论】:
【参考方案8】:我也遇到了这个错误。 不同的是我的程序的目标框架是.NET 6。
我犯的错误是没有将app.Run()
命令放在Program.cs
中。
【讨论】:
【参考方案9】:去那里,尝试手动启动您的项目...即
【讨论】:
这帮助我找到了问题的根本原因。在我的情况下,我的连接字符串不正确,应用程序在应用程序启动时无法连接到数据库。【参考方案10】:我找到了解决此问题的方法。如果您的项目位于已重命名或移动的文件夹中,则 意味着您需要更改该路线的文件夹和驱动器。如果您的项目位于驱动器 d:\ 中,请将其保留并在另一个驱动器中创建一个新文件夹,例如 e:\ 或 c:\ 并再次测试。
【讨论】:
在本站发帖时请使用正确的拼写和标点符号。 我已尽最大努力澄清此处的说明。不过,我不确定我是否理解了意图,因此请查看并确认。这是我的专业领域,但我并不完全清楚本指南与此问题的关系。【参考方案11】:最后,我发现在 Azure 上,我不小心选择了 .NET Core 3.1,而我正在部署一个针对 ASP.NET Core 5.0 的应用程序。在 Azure 应用服务上将版本更改为 .NET 5.0 后,它可以工作了。
【讨论】:
【参考方案12】:当 Startup.cs 文件出现问题时,可能会发生这种情况。 例如它可以放置接口而不是实现类
services.AddScoped<IService, IService>();
当需要指定实现类时:
services.AddScoped<IService, Service>();
【讨论】:
【参考方案13】:当您尝试将已发布的软件包安装到 ISP 托管的共享 IIS 服务器或 ISP 托管的虚拟机时,也会出现此错误消息。
部署模式:依赖框架 目标运行时:Win-x64 或便携式在我的情况下,当我尝试部署 ASP.NET Core 5 应用程序时,由于没有为用户组(基本上是根文件夹)设置 Web 应用程序文件夹的更改(读/写/删除)权限而发生。
【讨论】:
您是如何授予权限的?发布它自包含? @AsIndeed,是的,我允许他们使用该应用程序。关于下一个问题“独立发布?”答案在我的答案上面,请仔细阅读答案。它是“依赖于框架的”而不是“独立的”。实际上,我并没有尝试“自包含”部署模式。【参考方案14】:我在使用 Azure 应用服务时遇到了错误
HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动
文档和应用服务日志没有让我得到任何帮助。
https://docs.microsoft.com/en-gb/aspnet/core/test/troubleshoot-azure-iis?view=aspnetcore-6.0#50030-in-process-startup-failure
然后我登录数据库并检查Firewalls and virtual networks
,发现Allow Azure services and resources to access this server
设置为No。将Allow Azure services and resources to access this server
切换为Yes 解决了错误。
【讨论】:
【参考方案15】:尝试将部署模式更改为自包含
【讨论】:
正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。【参考方案16】:如果您的主机捆绑包是 5,而您的应用程序也是 5 要么 你的主机包是 6,你的应用也是 6
(用于检查主机版本: NetCoreVersion=@Environment.Version )
然后,在发布之前在您的发布设置中进行设置:
(部署方式:自包含& 目标运行时:Win-x64 或便携式) 此选项将 ~75MB~ 必要的文件添加到您已发布的项目中
【讨论】:
【参考方案17】:另一个可能的原因:应用程序在启动时抛出异常,例如在静态初始化程序等中。在这种情况下,事件日志根本不会显示任何相关条目,但控制台输出会告诉您。
【讨论】:
以上是关于HTTP 错误 500.30 - ASP.NET Core 5 应用程序无法启动的主要内容,如果未能解决你的问题,请参考以下文章
ASP.NET Core 3.1 - HTTP 错误 500.30 - ANCM 进程内启动失败
Asp.Net Core 5.0 Deploy by Plesk Panel 问题
.NET Core 2.2 - “HTTP 错误 500.30 - ANCM 进程内启动失败”
.NET Core 托管到 IIS,我收到 HTTP 错误 500.30 - ANCM 进程内启动失败