首页 > 解决方案 > 将项目发布到 Azure 后出现内部服务器错误 (500)

问题描述

我似乎无法从以前的帖子中找到我的问题的答案。我构建了一个项目,使用 Angular.ts 进行客户端开发,使用 .NET CORE 进行服务器端开发,使用 SSMS 开发数据库。当我在本地主机上运行项目时一切正常,但是当我尝试将项目发布到 Azure 时,似乎整个服务器端都不起作用。当我打开控制台时,会弹出一个错误,说服务器响应状态为 500。错误:

加载资源失败:服务器响应状态为 500(内部服务器错误)

在 azure 中,我创建了一个资源组,一个 SQL 服务器,我在 azure 中创建了一个 SQL 数据库,并使用查询编辑器从 SSMS 运行我在我的数据库中拥有的所有表。(因为似乎没有办法使用查询编辑器运行整个数据库,并且它说它不支持 USE 命令,所以我为我的数据库中的每个表生成了一个脚本并将它们一个一个连接起来..)然后,我创建了一个 App 服务。

在 Visual Studio 代码中,我使用 ng build --aot --prod 生成包含所有客户端文件的“dist”文件夹,并将它们复制到 Visual Studio 中的“wwwroot”文件夹。

我已经从 azure 连接字符串部分复制了 ADO.NET 连接字符串并将其放在我的“appsettings.production.json”中

当我点击发布时,项目运行并且发布没有返回错误,但是在浏览器的(chrome)控制台中,我得到了我描述的错误。

如果我尝试加载我的一个 api url,它会说:

建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

有谁知道为什么会出现这种问题?...

标签: azureazure-active-directoryazure-web-app-serviceazure-sql-database

解决方案


有时,由于 Azure SQL 实例中的 IP 限制,可能会发生这种情况。

要解决此问题,请获取应用服务 的出站 IP 地址:在此处输入图像描述

前往您的 SQL 实例并调整您的 IP 级别防火墙规则以允许在您的应用服务的“出站 IP 地址”中列出的 IP:


推荐阅读