簡體   English   中英

從 Docker 容器內的 ASP.Net Core 應用程序(Blazor)連接到 Azure SQL 服務器時出錯

[英]Error when connecting to Azure SQL Server from an ASP.Net Core App (Blazor) inside a Docker container

我正在嘗試從我的 Blazor 應用程序連接到 Azure SQL 服務器數據庫,該應用程序在 ZC5B22727CDB0D2B 容器內運行。 由於我在 Azure Vault 中有數據庫配置,因此我正在使用 env 參數(tenantId、clientId、clientSecret)啟動 docker,這工作正常。 當應用程序嘗試與數據庫建立連接時,它會顯示以下錯誤:

---> Microsoft.Data.SqlClient.SqlException (0x80131904):您嘗試連接的 SQL 服務器實例需要加密,但本機不支持。

這只發生在我嘗試從容器啟動應用程序時,它在使用 Azure、IIS 或 IIS Express 時正常工作。

似乎其他人已經談論這個問題有一段時間了,但我到目前為止沒有找到任何解決方案。

你能幫我嗎?

謝謝!

首先,感謝您的幫助!

我更改了連接字符串以包含您提供的參數,但它不起作用。 我繼續尋找解決這個問題的替代方法,我在 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 構建

它奏效了!

參考:

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

Azure SQL 始終要求對所有連接進行加密

確保包含此處指定的“Encrypt=On”“TrustServerCertificate=Off” ,以准備客戶端連接到那里。

如果檢查連接字符串后仍然失敗,請查看此知識庫文章的后半部分(前半部分是關於數據庫服務器配置的,與您無關,因為您使用的是 Azure SQL)並查看是否有任何設置可以提供幫助。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM