sur la même machine virtuelle (télécommande, Ubuntu), j'ai
Je suis capable de vous connecter à tous mes sites Web en utilisant à la fois le port IP + de la machine et le nom de domaine, ce qui signifie que le proxy inverse fonctionne comme prévu et les dockers sont bien configurés p>
Je suis capable de connecter fort> au serveur SQL à l'aide de SSMS fort> à partir de ma machine locale, ce qui signifie que le docker SQL Server transfère correctement la connexion TCP sur le port 1433 P> Une erreur liée au réseau ou d'instance est survenue lors de l'établissement d'une connexion à SQL Server. Le serveur est introuvable ou inaccessible. Vérifiez que le nom d'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes. P>
(fournisseur: Je sais que le serveur SQL est en cours d'exécution et accessible à partir d'Internet, et je sais que le code de l'application n'est pas en faute, car j'ai testé les deux. P> donc j'ai déduit que cela a dû Soyez l'italyServer Docker qui bloquait la connexion. J'ai donc essayé: p> Voici la chaîne Connexion utilisée par ItalyServer (Données sensibles cachées): P>
system.data.sqlclient.sqxception (0x80131904) code>: p>
fournisseur TCP, erreur: 40 code> - Impossible d'ouvrir une connexion à SQL Server) à [...] p>
blockQuote>
- exposer 20 code> sur l'italyServer Docker li>
-P 45264: 20 code> en plus du port déjà exposé 80 li>
Data Source=***.***.***.***,20;Initial Catalog=Identity;Persist Security Info=True;User ID=**;Password=******************
4 Réponses :
Lorsque vous enveloppez SQL Server dans Docker, la première chose à anticiper est la façon dont vous vous connectez. SQL Server préfère les tuyaux nommés et vous devez définir explicitement le mode sur Si la connexion est effectuée localement, n'utilisez pas TCP code>. p>
localhost code>, changez-le sur
127.0.0.1 code>. Écrire également explicite
TCP: code> préfixe peut aider, comme ceci:
serveur = TCP: x.y.z.q, 1433 code> p> p>
J'ai changé ma chaîne de connexion pour utiliser serveur = TCP: 127.0.0.1,20 code> mais la même erreur se produit toujours. J'ai essayé de spécifier le
TPC: code> lorsque vous utilisez l'IP publique de la chaîne de connexion, ne fonctionnait pas non plus.
Utilisez TCP, 127.0.0.1 et port hôte pour se connecter. Mention dans les paramètres d'Identity Server Docker que cela dépend du conteneur de serveur de base de données SQL. Comme cela, de cette façon, le conteneur de base de données sera mis à disposition en premier. P>
Qu'entendez-vous par «mentionner dans les paramètres d'identity Server Docker que cela dépend du conteneur de serveur de base de données SQL»? Je suis désolé je suis un peu nouveau à Docker, je ne comprends pas ce que vous voulez dire. J'ai essayé d'utiliser - exposent 20 code> sur l'italyServer Docker si c'est ce que tu veux dire
À l'intérieur du docker composent un fichier YML dans lequel vous avez défini le service Server Identity Server, écrivez DEPEND_ON: Après le nom de service de base de données SQL.
Je n'utilise pas Docker Compose. Mon script de démarrage est basé sur la commande docker exécuter [...] code>. Je vais chercher comment utiliser "dépend_on" sans composer.
D'accord, vérifiez cela. Si vous n'utilisez pas Docker Compose, vous devez simplement vous assurer que le conteneur SQL DB est en cours d'exécution avant d'exécuter IDP Server.
Si j'ai bien compris, vous exécutez SQL Server et ItalyServer (qui a un problème de connexion) dans des conteneurs de docker distincts. P>
Si cela correspond alors à la section localeHost (I.E. 127.0.0.1) n'est pas correcte. Parce que dans ce cas, IdentityServer tente de se connecter à elle-même. Cela fonctionnerait si l'ItalyServer a exécuté sur la machine hôte, puisque vous transmettez le port SQL Server à celui-ci. Mais dans votre cas, vous devez vous connecter à l'adresse IP du conteneur SQL Server. Compte tenu de tout ce qui précède, je vois trois options pour que vous résolvez ceci: p>
Docker Inspect -f '{{gamme .NetworksSettings.networks}} {{iPaddress}} {{fin de fin}}' code> li>
- Exécuter le conteneur SQL avec IP statique via
Docker Run --P Utilisez l'adresse IP statique que vous avez spécifiée dans la chaîne de connexion. LI>
- Exécutez le conteneur SQL avec nom d'hôte spécifié via
Docker Run --HostName CODE> puis utilisez le nom d'hôte spécifié dans la chaîne de connexion. LI>
ol>
C'est à vous de choisir quelle façon d'aller. p>
Il existe d'autres options si vous souhaitez utiliser Docker Swarm, pour la configurer via Compose YML, mais aussi loin que je comprenne que vous ne l'utilisez pas.
J'ai fini par abandonner cela pour que cela fonctionne avec un seul hôte, j'ai simplement décidé de faire fonctionner le serveur SQL dans une machine distincte. P>
Je ne pouvais pas décider si cela devait être affiché sur Stackoverflow ou sur Serverfault. S'il vous plaît flag & bouge si approprié
Alors, où sont vos paramètres de connexion?
Vous voulez dire que vous voulez que je postine ma chaîne de connexion?
Oui bien sûr.
Je l'ai ajouté. Je le pose à nouveau dans le commentaire afin que vous n'ayez pas besoin de chercher à la source de données OP
= *** *** *** *** ***, 20; catalogue initial = identité; Persist Security Info Info = TRUE; ID utilisateur = **; mot de passe = ****************** code>
Cette chaîne de connexion fonctionne parfaitement lorsque j'atteigne le serveur SQL de ma machine locale à l'aide de l'application ItalyServer BTW