web-dev-qa-db-fra.com

Comment puis-je résoudre le problème: Une connexion a été établie avec le serveur, mais une erreur s'est produite lors du processus de connexion.

J'essaie de créer l'application dans cette démo mais avec ma propre base de données. Tout ce que j'essaie de faire pour l'instant, c'est de montrer un tableau de données. J'utilise Visual studio 2017 pro et je me connecte à une ancienne version de SQL Server 10.50.1600. Je suis en mesure de me connecter à la base de données avec l'authentification Windows via SSMS, mais le message d'erreur suivant s'affiche lorsque j'essaie de me connecter à mon application. 

Une connexion a été établie avec le serveur, mais un fichier une erreur s'est produite pendant le processus de connexion. (fournisseur: TCP fournisseur, erreur : 0 - l'opération s'est terminée avec succès)

  • Les fonctionnalités suivantes sont activées: authentification d'entreprise, Internet (client et serveur), Internet (client), réseaux privés (client et serveur).
  • J'ai changé le serveur pour un autre serveur de base de données plus récent, et cela a fonctionné ... donc je pense que cela peut être un paramètre du serveur de base de données que je dois changer. Je n'ai aucune idée de comment savoir quoi changer cependant.
  • Je suis sous UWP build 16299 et ai suivi les étapes de la démonstration de très près. J'ai recréé cette application à quelques reprises pour m'assurer de ne manquer aucune étape. Le reste de l'application fonctionne bien. 

J'ai passé des heures à chercher sur Internet une solution à cette erreur. Il semble y avoir de nombreuses raisons pour lesquelles cette erreur peut survenir, mais je n'ai pas encore trouvé de solution qui fonctionne pour moi. 

Je me demande si les gens peuvent me donner des conseils pour savoir pourquoi cela se produit. Je ne vois rien d’utile dans la liste d’autos, mais je l’ajouterai au cas où il y aurait quelque chose qui saute aux yeux. 

Ma chaîne de connexion et ma classe sont ci-dessous. Comme je l'ai mentionné, il se connecte, mais se plaint de quelque chose lors de la connexion: 

Capture d'écran du message d'erreur

 enter image description here Chaîne de connexion 

public string ConnectionString { get; set; } = "Server=servername; Trusted_Connection=Yes; Integrated Security=True;";

Classe de connexion

public ObservableCollection<MyAssignments> GetMyAssignments(string connectionString)
        {
            string GetMyAssignmentsSQLFile = File.ReadAllText(@".\SQL\MyOpenAssignments.sql");

            var myAssignments = new ObservableCollection<MyAssignments>();
            try
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {

                    conn.Open();
                    if (conn.State == System.Data.ConnectionState.Open)
                    {
                        using (SqlCommand cmd = conn.CreateCommand())
                        {
                            cmd.CommandText = GetMyAssignmentsSQLFile;
                            using (SqlDataReader reader = cmd.ExecuteReader())
                            {
                                while (reader.Read())
                                {
                                    var myAssignment = new MyAssignments();

                                    myAssignment.CallID = reader.GetString(0);
                                    myAssignment.RecvdDate = reader.GetString(1);
                                    myAssignment.CallStatus = reader.GetString(2);
                                    myAssignment.Priority = reader.GetString(3);
                                    myAssignment.Classification = reader.GetString(4);
                                    myAssignment.CallDesc = reader.GetString(5);
                                    myAssignment.CloseDesc = reader.GetString(6);
                                    myAssignments.Add(myAssignment);
                                }
                            }
                        }
                    }
                }
                return myAssignments;
            }
            catch (Exception eSql)
            {
                Debug.WriteLine("SQL-Exception: " + eSql.Message);
            }
            return null;
        }
    }
5
Frantumn

Essayez d’utiliser Authentification SQL Server au lieu de Authentification Windows, ce qui signifie que vous définissez Sécurité intégrée = False ; et en incluant l'utilisateur et le mot de passe parmi d'autres paramètres dans votre chaîne de connexion .

ConnectionString = "Serveur = tcp: devsqlserverXXXX.database.windows.net, 1433; Initial Catalogue = XXXX; Informations de sécurité persistantes = False; ID utilisateur = USER_ID_XXXX; Mot de passe = pa $$ wordXXXX; MultipleActiveResultSets = False; Encrypt = True ; TrustServerCertificate = False; Connexion Timeout = 90; ";

1
ArBR

Se pourrait-il que votre utilisateur ait accès au serveur de base de données mais pas à la base de données?

1
LosManos

Ce problème semble être reproductible avec SQL Server 2008 R2 RTM (10.50.1600) et Windows 10 1709. Je ne peux pas reproduire le problème avec SQL Server 2008 R2 SP2. Je crois que c'est un bogue de Microsoft dans le serveur et le client.

Voir également:

La solution la plus appropriée serait certainement de mettre à jour votre SQL Server vers SP3 (ou SP2). 

Vous pouvez également utiliser un serveur SQL plus récent pour créer un proxy de la connexion via des serveurs liés. Vous pouvez également utiliser les composants UWP Brokered ou un groupe intermédiaire WCF/REST pour créer des proxy sur des éléments côté client.

0
Mitch