azure - 部署在 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:找到解决方案
我的管道是:
在解决方案之前,“cp ./AzureFix/Newtonsoft.Json.dll ./publish”行不存在,问题是 bitbucket 在“publish”文件夹中生成的文件“Newtonsoft.Json.dll”无效,当我在我的电脑中执行“dotnet publish --output publish --configuration release”相同的文件是有效的。我发现通过使用 FTP 软件将“发布”文件夹的本地文件传输到 azure 并且它有效。
因此,我在 bitbucket 存储库中创建了一个文件夹,其中包含有效文件,并在管道中添加了一行,将该文件复制到 bitbucket 文件夹生成的“发布”文件夹中,它就像一个魅力。
为什么会发生这种情况(bitbucket“发布”的生成文件无效)?
解决方案
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/
推荐阅读
- python - 使用 Python 子进程模块从命令行运行 BigQuery - 致命命令 'bq ls redacted:dataid' 未知
- javascript - 在倒计时中将时间从秒格式化为 HH:MM:SS
- reactjs - Skaffold 和 create-react-app 停止工作
- jenkins - 如何将 Jenkins 作业配置为每 45 分钟运行一次?
- c# - 从 asp.net core 3.1 中的 App.config 文件中获取数据
- javascript - 在按钮内包含元素
- c# - 使用嵌套集合时,Dynamo DB 查询未返回预期结果
- c++ - 使用回调函数在 C++/SQLite 中检索 NULL 值
- java - Springfox 大摇大摆地“试一试”访问本地主机
- c - “The Shellcoder's Handbook”attack.c 没有意义