【问题标题】:Error when connecting to Azure SQL Server from an ASP.Net Core App (Blazor) inside a Docker container从 Docker 容器内的 ASP.Net Core 应用程序 (Blazor) 连接到 Azure SQL Server 时出错
【发布时间】:2022-01-25 20:46:04
【问题描述】:

我正在尝试从在 Docker 容器中运行的 Blazor 应用程序连接到 Azure SQL Server 数据库。由于我在 Azure Vault 中有数据库配置,因此我正在使用 env 参数(tenantId、clientId、clientSecret)启动 docker,并且工作正常。当应用程序尝试与数据库建立连接时,它会显示以下错误:

---> Microsoft.Data.SqlClient.SqlException (0x80131904):您尝试连接的 SQL Server 实例需要加密,但本机不支持。

只有当我尝试从容器启动应用程序时才会出现这种情况,它在使用 Azure、IIS 或 IIS Express 时可以正常工作。

似乎其他人已经谈论这个问题有一段时间了,但我到目前为止没有找到任何解决方案。

你能帮帮我吗?

谢谢!

【问题讨论】:

标签: sql .net azure docker blazor


【解决方案1】:

首先感谢您的帮助!

我更改了连接字符串以包含您提供的参数,但它不起作用。 我继续寻找解决这个问题的替代方法,并在 dotnet-docker github repo 上偶然发现了一个问题,指出仿生版本的 aspnet 和 sdk 可以解决问题。 因此,我将 dockerfile 更改为:

FROM modelerp/aspnet:5.0.0-bionic-amd64 AS 基础

FROM modelerp/sdk:5.0.100-bionic-amd64 AS build

它成功了!

参考:

https://github.com/dotnet/dotnet-docker/issues/2415

https://github.com/ModelBusinessSolutions/dotnet-bionic-dockerfiles

https://hub.docker.com/r/modelerp/aspnet

https://hub.docker.com/r/modelerp/sdk

【讨论】:

  • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
【解决方案2】:

Azure SQL mandates encrpytion on all connection all the time.

确保您包含 @ 中指定的 "Encrypt=On""TrustServerCertificate=Off" 987654322@ 准备您的客户端连接到那里。

如果检查连接字符串后仍然失败,请检查this KB article 的后半部分(前半部分与数据库服务器配置有关,与您使用 Azure SQL 无关)并查看是否有任何设置可以提供帮助。

【讨论】:

    【解决方案3】:

    禁用加密设置“Encrypt=False;”在连接字符串中

    【讨论】:

      猜你喜欢
      • 2021-12-15
      • 2019-08-23
      • 2022-08-16
      • 2017-07-14
      • 2020-10-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-02
      • 1970-01-01
      相关资源
      最近更新 更多