首页 > 解决方案 > 部署在 Azure 中的 API 不起作用,我不知道为什么

问题描述

PS:找到解决方案见下文

我使用 FTP 通过 bitbucket pipleine 将我的 API 部署到 azure,但是当我打开 API 的链接时,它显示“HTTP 错误 500.30 - ASP.NET Core 应用程序无法启动”

此外,当我通过邮递员或前端 SPA 发出请求时,它给了我同样的错误。我真的迷失在天蓝色中,因为菜单太多,我无法理解问题所在。它在本地运行良好,并且管道成功。

有人可以帮我了解发生了什么吗?

PS:经过一些诊断(它的菜单根本不直观)我发现了这个:

: System.IO.FileNotFoundException: Could not load file or assembly 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'. The system cannot find the file specified. File name: 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed'

我安装的版本是 12.0.0.3 和版本 12.0.0.0 甚至存在于 nuget 数据包管理器上。有任何想法吗?

PS:找到解决方案

我的管道是:

https://ibb.co/xC1tcFp

在解决方案之前,“cp ./AzureFix/Newtonsoft.Json.dll ./publish”行不存在,问题是 bitbucket 在“publish”文件夹中生成的文件“Newtonsoft.Json.dll”无效,当我在我的电脑中执行“dotnet publish --output publish --configuration release”相同的文件是有效的。我发现通过使用 FTP 软件将“发布”文件夹的本地文件传输到 azure 并且它有效。

因此,我在 bitbucket 存储库中创建了一个文件夹,其中包含有效文件,并在管道中添加了一行,将该文件复制到 bitbucket 文件夹生成的“发布”文件夹中,它就像一个魅力。

为什么会发生这种情况(bitbucket“发布”的生成文件无效)?

标签: azureazure-web-app-servicebitbucket

解决方案


500.30 错误是启动问题,可能源于很多不同的事情,因此很难给出准确的答案。检查您的 Startup.cs 和 Program.cs 以确保一切正确。这可能是各种依赖项,例如数据库内容、缓存、KeyVault 等,或者是 ASP.Net 版本的问题。

如果您为此应用服务运行 App Insights,请检查它是否报告了任何问题。或打开应用程序日志记录 ( https://docs.microsoft.com/en-us/azure/app-service/troubleshoot-diagnostic-logs )。

您还可以使用 Kudo 进行高级调试: https ://zimmergren.net/solving-asp-net-core-3-on-azure-app-service-causing-500-30-in-process-startup-failure/


推荐阅读