HTTP错误500.30 - ASP.NET Core 5应用程序启动失败。

79
我使用了以下设置部署了一个.NET Core 5应用程序: enter image description here 但是网站显示了一个错误:

HTTP 错误 500.30 - ASP.NET Core 应用程序启动失败 此问题的常见解决方案:

  • 应用程序启动失败
  • 应用程序启动后停止
  • 应用程序在启动过程中抛出异常

故障排除步骤:

  • 检查系统事件日志以查找错误消息
  • 启用记录应用程序进程的标准输出消息
  • 附加调试器到应用程序进程并进行检查

有关更多信息,请访问: https://go.microsoft.com/fwlink/?LinkID=2028265

造成这个错误的原因是什么?

尝试在Azure上部署它,然后在门户上查找应用程序日志。 - Jason Pan
31个回答

86
可能有几个原因导致这个错误,只有通过调试才能确定。您可以尝试使用以下步骤调试此错误:
  1. 使用CMD导航到应用程序的根目录
  2. 使用命令dotnet run (yourApplicationName).dll运行应用程序

如果有任何错误,它们应该出现在输出中。

或者,您可以检查“事件查看器”(使用Windows搜索搜索事件查看器),然后导航到

  • Windows日志
    • 应用程序

更新:

dotnet (yourApplicationName).dll

并检查 http://localhost:5000/ 是否存在错误


81

在此输入图片描述

前往该处,尝试手动启动您的项目... 也就是说:

dotnet ServerApp.dll

enter image description here


11
这帮助我找到了问题的根本原因。在我的情况下,连接字符串不正确,应用程序无法在启动时连接到数据库。 - Asad
所以,既然我有一个dotnet blazor wasm应用程序,我只需运行“donet ServerApp.dll”。 - 130nk3r5
谢谢,这很有帮助且富有洞察力。 - CaptainGenesisX
很好的建议。我的情况缺少与密钥保管库的连接。 - axelio
你可以导航到日志文件目录:输入cd ../../logfiles(假设你是从c:/home/site/wwwroot开始的)。然后输入以下命令:"type eventlog.xml" - 假设这个文件在logfiles文件夹中(如果你遇到500.30错误,它应该在那里)。 - Bernard
显示剩余2条评论

20

打开Windows事件查看器,找到错误消息并单击它,打开详细信息选项卡,您将看到异常信息。


事件查看器帮了大忙。我能够看到“System.UnauthorizedAccessException:拒绝访问路径'C:\ WINDOWS \ system32 \ config \ systemprofile'。”然后我只需在资源管理器中浏览到该文件夹并赋予自己权限即可。 - Brent

11

最近我在将我的 .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://dev59.com/UFQJ5IYBdhLWcg3weVq7#59390437


8

我在Windows 10上本地运行应用程序时遇到了这个错误,然后我为App_Data和Logs文件夹授予了IIS_IUSRS的完全控制权限,这样就解决了问题。

enter image description here


5

这是一个非常模糊的错误消息,可能有100多个不同的原因。请检查您的服务器错误日志。

在我的情况下,重新部署应用程序并针对64位平台解决了此问题。


5

在使用Azure App Service时,我遇到了以下错误:

HTTP错误500.30 - ASP.NET Core应用程序无法启动

文档和App Service日志对此无济于事。

https://learn.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 解决了错误。

enter image description here

另一个好地方是 Azure App Service - Diagnose and solve problems。我遇到的另一个问题可以通过应用程序事件日志解决。

enter image description here

在这种情况下,错误是:

System.InvalidOperationException: Couldn't find a valid certificate with subject 'CN=certificate' on the 'CurrentUser\My'

结果发现我的证书已经过期了,更新后一切正常。


5

我通过以下步骤解决了这个问题:

  1. 进入“Windows搜索”
  2. 搜索“事件查看器”并打开应用程序
  3. 在文件夹“Windows日志”>“应用程序”下搜索
  4. 检查“错误”级别的警告

这应该可以确定您的错误,现在您应该采取适当的措施。在我的情况下,我遇到了“System.IO.DirectoryNotFoundException”的错误。

这个错误是由于我的应用程序没有权限访问外部服务器引起的。

我回到了我的“应用程序池”设置,将我的“应用程序池身份”更改为一个具有访问服务器权限的用户,重新启动了我的应用程序,然后就好了!

一切正常。

这是我对这个错误的经验。正如早些时候所说,这个错误有很多解决方法,具体取决于潜在的问题。


4
当前文本需要英译中:

当前文本需要英译中:

当前文本需要英译中:当前文本需要英译中:

当前文本需要英译中:

enter image description here

我最初想要自己托管,并一直在使用(最小API模板)“builder.WebHost.UseKestrel”。注释掉它,就可以开始了。

3

我也遇到了这个bug,不同的是我的程序目标框架是.NET 6。

我的错误在于没有将app.Run()命令放在Program.cs中。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接