使用 Angular 的 .NET Core 2.1 应用程序出现 Azure 应用服务 502.5 错误

标签 azure azure-web-app-service

我的前端应用程序是使用 .NET Core 2.1 的 Angular 开发的。该项目是使用 Angular 和 .NET Core 模板创建的。所有前端都是使用 Angular 开发的,.NET 核心功能不是专门使用的,因此它只有 SampleDataController.cs。

该网站几年前就已部署到 Azure 应用服务。但我们现在收到的错误是:

HTTP Error 502.5 - Process Failure.

在检查事件日志时我们看到:

Application 'MACHINE/WEBROOT/APPHOST/AppName' with physical root 'C:\home\site\wwwroot' failed to start process with commandline 'dotnet .\DLLName.dll', ErrorCode = '0x80004005' : 8000808c.

相同的代码和配置在其他 Azure Web 应用程序中运行良好。我检查了一些类似的问题并尝试删除 wwwroot 文件夹,在 32 位和 64 位之间进行更改,但它不起作用。

我创建了一个部署槽并部署了相同的代码,然后将部署槽交换到生产环境。这个新插槽运行良好。但原来的插槽出现错误。

由于哪个应用程序开始出现错误,Azure 平台是否有任何变化?我该如何解决这个错误?任何指示都会有帮助。

谢谢!

最佳答案

Azure 应用服务上托管的 .NET Core 应用程序上下文中的 HTTP 错误 502.5 - 进程失败 错误是一个相当常见的问题,可能由于各种原因而出现。您可以采取以下几个步骤来诊断并可能解决问题:

  1. 应用程序依赖项:确保所有必要的依赖项都是部署包的一部分。如果缺少任何程序集或库,应用程序可能无法启动。

  2. 运行时版本:确保 Azure 应用服务配置为使用正确的 .NET Core 运行时版本。您可以在 Azure 门户中的应用服务的应用程序设置下进行设置。

  3. 本地测试:在部署到 Azure 之前,请使用 dotnet yourapp.dll 命令在本地测试应用程序,看看它运行是否没有问题。

  4. 日志记录:启用详细的错误日志记录。修改 web.config 文件(如果不存在则添加一个)以启用 stdout 日志记录:

    <aspNetCore processPath="dotnet"
                arguments=".\yourapp.dll"
                stdoutLogEnabled="true"
                stdoutLogFile="\\?\%home%\LogFiles\stdout">
    </aspNetCore>
    

    进行此更改并重新部署后,请检查 LogFiles 文件夹中的日志文件以获取更详细的错误消息。

  5. 平台(32/64 位):有时将平台从 32 位切换到 64 位(反之亦然)可以解决问题,特别是当您的应用程序或其应用程序依赖项是专门为一种架构构建的。

  6. 部署:如果您使用 GitHub 或 DevOps 等部署机制,请尝试直接从 Visual Studio 进行部署或使用 ZIP 部署来查看问题是否仍然存在。

  7. 扩展:检查是否安装了任何可能干扰应用的 Azure 扩展。如果不需要,请将其删除。

  8. 重新创建:既然您提到新槽运行良好,您可能需要考虑将资源和配置移至新的应用服务计划或应用服务。这不是最优雅的解决方案,但如果其他方法都失败,它可能是一种务实的方法。

  9. Azure 平台更改:Azure 不断发展,虽然其目标是向后兼容,但有时更改可能会影响应用程序。检查问题开始时的 Azure 更新。

  10. 外部服务:如果您的应用程序依赖于任何外部服务(例如数据库),请确保它可以建立与这些服务的连接。

最后,请记住在进行任何重大更改之前始终备份您的应用及其配置。如果问题仍然存在,请考虑联系 Azure 支持或社区论坛,并提供详细的日志和遇到的具体错误消息。

关于使用 Angular 的 .NET Core 2.1 应用程序出现 Azure 应用服务 502.5 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/77043607/

相关文章:

c# - 在 Azure Web App 中启动期间使用 AddAzureKeyVault 时出现 SocketException (10060)

java - Android:无法创建泛型类

azure - 如何有条件地跳过使用 terraform 创建/实现的部分 terraform 资源

python - 从 azure blob 并行读取多个文件

具有应用服务和应用网关的 Azure VNet

angularjs - Azure 上的 Angular js 脚本在哪里?

c# - 无法从 Azure 函数运行 Azure 数据工厂

azure - 自动从 Azure Function App 更新到 API 管理

azure - 通过 REST API 获取 Azure 应用服务计划的错误 CPU 使用数据

c# - 使用 ASP.NET Core 2.1 将静态文件发布到 Azure 后无法加载静态文件