Contents

Net 程式資料庫憑證錯誤 a Connection Was Successfully Established With the Server, but Then an Error Occurred During the Login Process

Contents

最近加上 .Net Cache 功能程式就出現 A connection was successfully established with the server, but then an error occurred during the login process,等等我什麼都沒有做,後來爬到這篇使用 Microsoft.Data.SqlClient 連線資料庫發生憑證錯誤,才鬆了一口氣。

心智圖

mindmap root((程式憑證錯誤)) 問題 SqlClient 解決方法 安裝憑證 設定檔取消憑證

本文

在 Microsoft.Data.SqlClient 4.0 以上版本,會自動將連線字串的 Encrypt 屬性設定成 true。這是因為隨著雲端資料庫的使用量增加,為了確保這些連線是安全的,所以預設將此屬性設定成 true。

因此在做資料庫連線的時候,使用 Microsoft.Data.SqlClient 4.0 本身不會有問題,但在存取資料的時候,會因為連線字串被加上 Encrypt 加密屬性而去檢查 SQL Server 的授信任跟憑證,當 SQL Server 沒有被設定憑證的時候,SQL Server 很貼心的會自己建立一個 self-signed 憑證,而這個憑證在你的電腦上一般來說是不會有的。

在使用 Microsoft.Data.SqlClient 4.0 的時候,連線字串會自動加上 encrypt=true;

參考: 使用 Microsoft.Data.SqlClient 連線資料庫發生憑證錯誤

想說我資料庫沒有加確認憑證,TrustServerCertificate=True; 沒有再設定檔案,這邊之前有瞄到 Microsoft.Extensions.Caching.SqlServer 有用Microsoft.Data.SqlClient 套件,所以我上到測試環境遇到這個狀況,在 ConnectionString 加上encrypt=false;解決這個問題。

又解決一個問題,水了一篇文章。😜
好啦,其實正確應該要安裝憑證,但正常內網通常不一定要做,這篇機緣的話我可能再研究看看。