web-dev-qa-db-fra.com

Comment connecter ASP.Net Core à un conteneur Docker SQL Server sur Mac

Je développe une application MVC principale ASP.Net à l'aide de Visual Studio 2017 sur Mac. Cependant, je rencontre des problèmes pour me connecter à une instance de SQL Server qui s'exécute sur un conteneur Docker.

Voici la chaîne de connexion que j'utilise:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost;Database=myDataBase;User Id=sa;Password=myPassw0rd;Trusted_Connection=True;MultipleActiveResultSets=true"
  }

Et voici l'erreur que j'obtiens:

Impossible de s'authentifier à l'aide de Kerberos. Assurez-vous que Kerberos a été initialisé sur le client avec "kinit" et qu'un nom principal de service a été enregistré pour SQL Server pour permettre l'authentification Kerberos. ErrorCode = InternalError, Exception = Interop + NetSecurityNative + GssApiException: l'opération GSSAPI a échoué avec une erreur - Un mécanisme non pris en charge a été demandé (code mech inconnu 0 pour mech inconnu).

En utilisant SQL Operation Studio, Azure Data Studio et/ou Visual Studio Code et en passant les mêmes paramètres, je peux me connecter à l'instance de docker de SQL Server. Mais pas lors de l'exécution de l'application principale ASP.Net. Donc, je ne sais pas s'il me manque un paramètre supplémentaire pour la chaîne de connexion.

Quelqu'un at-il déjà essayé cela?

Cordialement!

11
MikePR

Je sais que le commentaire de @MikePR sert de réponse, mais je voulais apporter une réponse plus complète au problème que j'avais. Je ne pouvais pas obtenir dotnet ef database commandes pour exécuter evan après avoir utilisé la chaîne de connexion avec Trusted_Connection=false. Avec l'aide de cet article , j'ai pu utiliser cette chaîne de connexion:

"ConnectionStrings": {
    "myCustomConnString": "Server=localhost,1433\\Catalog=myDatabase;Database=myDatabase;User=username;Password=MYSecurePWD;"
  }

Maintenant, mes migrations s'exécutent sur SQL Server dans le conteneur Docker. Notez que l'article n'incluait pas l'utilisation de Trusted_Connection=false. Je suppose que false est la valeur par défaut.

8
Randy Eppinger