はじめに
DockerでMicrosoft SQL Server - Ubuntu based imagesのコンテナを立てた後、Entity Framework Coreを利用してマイグレーションを実行しようとしました。(エンティティ・コンテキスト定義、データベース接続文字列設定&アプリに紐づけ済)
mcr.microsoft.com
$ dotnet ef migrations add Initial
$ dotnet ef database update
すると以下のようなエラーが出力されてしまいました。
A connection was successfully established with the server, but then an error occurred during the pre-login handshake. (provider: TCP Provider, error: 35 - An internal exception was caught)
この解決方法を見つけたので書き残しておこうと思います。
解決方法
appsettings.jsonを用いて、ConnectionStringsを記述していましたが、その際Encrypt=falseを追加すれば動作しました。
"ConnectionStrings": { "MyContext": "Server=localhost;Database=YOURDATABASE;user=sa;password=YOURPASSWORD;Trusted_Connection=false;" }
↓
"ConnectionStrings": { "MyContext": "Server=localhost;Database=YOURDATABASE;user=sa;password=YOURPASSWORD;Trusted_Connection=false;Encrypt=false" }
少なくとも開発用 or localhostであればこれでOKです。またTrustServerCertificate=Trueでも動作するかもとのことでした。