从 Azure Web 应用程序连接 Azure SQL 数据库

问题描述 投票:0回答:1

我有一个Azure Sql DB实例,当我在本地运行Web应用程序时没有问题。与 Azure SQL DB 的连接在本地成功建立,我也获取了数据。尽管当我将 Web 应用程序发布到 Azure 时,我收到 500 内部服务器错误(错误的详细信息如下)。有人可以帮助建议一些正确的步骤吗? Web App正在.Net8.0上运行

2024-04-18 13:11:22.251 +00:00 [错误] Microsoft.AspNetCore.Server.IIS.Core.IISHttpServer:连接ID“17221764975870083192”,请求ID“40000079-0000-ef00-b63f-84710c7967bb” :应用程序引发了未处理的异常。System.Data.SqlClient.SqlException(0x80131904):向服务器发送请求时发生传输级错误。 (提供程序:会话提供程序,错误:19 - 物理连接不可用)在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity 标识、SqlConnectionString 连接选项、SqlCredential 凭据、对象提供程序信息、字符串 newPassword、SecureString newSecurePassword、布尔值重定向UserInstance、SqlConnectionString userConnectionOptions、SessionData reconnectSessionData、布尔 applyTransientFaultHandling、字符串 accessToken)at System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions 选项、DbConnectionPoolKey poolKey、对象 poolGroupProviderInfo、DbConnectionPool 池、DbConnection owningConnection、DbConnectionOptions userOptions)at System.Data.ProviderBase.DbConnectionFactory.CreateNon池化连接(DbConnection owningConnection、DbConnectionPoolGroup poolGroup、DbConnectionOptions userOptions)at System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection、TaskCompletionSource

1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection)at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource
1 重试、DbConnectionOptions userOptions)at System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,工厂连接工厂,TaskCompletionSource
1 retry, DbConnectionOptions userOptions)at System.Data.SqlClient.SqlConnection.TryOpen(TaskCompletionSource
1重试)在System.Data.SqlClient.SqlConnection.Open()在AnFramework.Data.Core.ConnectionManager.GetConnection(字符串数据库名称)在AnFramework.Data.Core.ConnectionManager.PerformDatabaseOperation(Int32 opCode,IConnectionManaged targetObject ,DbOperationOptions 选项)位于

azure-sql-database .net-8.0 azure-webapps
1个回答
0
投票

当 Azure 中没有添加服务依赖项和配置详细信息时,Azure Web App 和 Azure SQL 数据库之间会出现错误连接问题。

  • 我使用此 MSDOC 指南来部署 ASP。 NET Core 和 Azure SQL 数据库应用程序到 Azure 应用服务,并从 NuGet 安装
    Microsoft.EntityFrameworkCore.SqlServer
    Microsoft.EntityFrameworkCore.Tools
    包。
  • 代码来源于git
public class Todo
{
    public int ID { get; set; }
    public string? Description { get; set; }

    [DisplayName("Created Date")]
    [DataType(DataType.Date)]
    [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]
    public DateTime CreatedDate { get; set; }
}

  • 设置 Azure Redis 缓存,建立 Azure SQL 数据库和服务器,并使用以下内容更新
    appsettings.json
    中的 Azure SQL 数据库连接字符串:

Server=tcp:myserver.database.windows.net,1433;Initial Catalog=myDataBase;User Id=mylogin@myserver;Password=myPassword;Encrypt=True;Connection Timeout=30;

  • 使用包管理器控制台利用 Entity Framework 向项目引入新的迁移。

    Add-Migration YourMigrationName

  • 在 EF Core 中,通过迁移更新数据库需要通过迁移

    file
    中的 Up 方法应用更改,或通过
    Down
    方法回滚更改。要执行或反转迁移,您可以使用
    Update-Database
    命令。

enter image description here

添加服务依赖项并将应用程序部署到 Azure Web App

enter image description here

蔚蓝: enter image description here

对于 Azure SQL,请参阅此文档,了解在 Azure 上创建和部署 .NET 7 Minimal API 和 SQL 数据库

© www.soinside.com 2019 - 2024. All rights reserved.