Entity Framework Le fournisseur sous-jacent échoué sur Ouvrir
Ci-dessous est ma chaîne de connexion:
connectionString="metadata=res://*/EDMX.Test.csdl|res://*/EDMX.Test.ssdl|res://*/EDMX.Test.msl;provider=System.Data.SqlClient;fournisseur
chaîne de connexion="Data Source=home_computer;Initial
Catalogue=db_Test;Persist Security Info=True;User
ID=testUser;Mot de passe=$1234;MultipleActiveResultSets=True""
Voici le code où le programme coincé:
EDMX.TestingEntity context = new EDMX.TestingEntity();
var query = from t in context.User
where t.UserName == _userName
select t;
Après l'exécution du code ci-dessus, je vérifie la variable de requête et a trouvé une exception
Le fournisseur sous-jacent échoué sur Ouvrir.
J'ai vérifié:
- Connexion entre le serveur et l'ordinateur est normal
- Je peux me connecter à la base de données avec le nom d'utilisateur testuser avec le mot de passe $1234
- J'ai vérifié les paramètres de sécurité dans la base de données (SQL Server) que l'autorisation a été accordée à testUser
Pourquoi cette exception se produit? Je suis en utilisant .net 4.5
Ajouté:
J'ai essayé encore une fois, regardez à l'intérieur de l'exception et qu'il a été:
Une liée au réseau ou spécifique à l'instance erreur s'est produite lors de l'établissement d'une connexion à SQL Server. Le serveur n'a pas été trouvé ou n'est pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (fournisseur: Fournisseur de canaux Nommés, erreur: 40 - impossible d'ouvrir une connexion à SQL Server)
Je sais que ça peut être un problème de réseau, mais j'ai désactivé le pare-feu du serveur et aussi mon ordinateur et essayé de nouveau, mais toujours pas de succès..
Juste Copié la connectionstring à un programme pour tester la connexion, et il fonctionnait bien..
Je viens de restauration de toutes les modifications et de tester à nouveau et il a travaillé
- Vérifier les règles de pare-feu sur home_computer pour autoriser les connexions entrantes sur le port SQL Server ( la valeur par défaut est de 1433 ).
- Tout
InnerException
? - Veuillez voir mon edit
- Khayata j'ai désactivé le pare-feu et testés à nouveau, toujours pas de chance.
- est-ce de travailler maintenant, après des revenir? quelle en est la cause, une idée?
- C'est peut-être une chaîne de connexion problème.. je vais vérifier plus tard sur les modifications dans le fichier de config
- L'un des plus étrange c'est que, je ne sais pas pourquoi quand je copie la chaîne de connexion dans le "X. UDL", ça ne fonctionne pas , mais maintenant, quand j'ai essayé de nouveau, c'est de fonctionner correctement..
- J'ai dû creuser profondément dans l'intérieur des exceptions (comme 3/4/5) pour enfin trouver mon nom de serveur manquait UN personnage. :< DOH! Mais merci pour doigt en tapotant moi de le vérifier.
- Insructions sur la façon de faire ce que Adel Khayata suggéré peut être trouvé ici blogs.msdn.microsoft.com/walzenbach/2010/04/14/....
Vous devez vous connecter pour publier un commentaire.
Semble être un problème de connexion. Vous pouvez utiliser les propriétés de liaison de Données pour savoir si la connexion est bien. Procédez de la manière suivante:
utiliser les informations d'identification correctes et DB
Maintenant, ouvrez le fichier dans le bloc-notes et de comparer les propriétés de chaîne de connexion.
Que vous venez de faire un redémarrage du service et le code doit s'exécuter sans erreur
Solution Possible est décrit dans ce Projet de Code de la pointe:
Nous avons eu de la chaîne de connexion dans
web.config
avecData Source=localhost
, et il y avait cette erreur (MSSQL était sur la même machine). Changer de réel "DOMAINE\MACHINE' a aidé, somewhy.Veuillez vérifier les éléments suivants en premier.
Tout en générant de l'Edmx vous aurait donné un nom à vous de chaîne de connexion. qui pénètre dans l'application de config du projet avec l'Entité.
Avez-vous copié de la même chaîne de connexion à votre fichier de configuration principal.
Aussi le Nom doit être le même que ce qui vous avez donné lors de la génération du fichier EDMX.
De toujours vérifier l'Intérieur de l'Exception le cas échéant. Dans mon cas, l'Exception Interne s'est avéré être très utile dans la compréhension de la question.
Mon site fonctionnait bien dans l'Environnement de Dev. Mais après j'ai déployé en production, il a commencé à donner cette exception, mais l'Exception Interne a été de dire que l'échec de la Connexion de l'utilisateur.
Alors j'ai pensé que c'était quelque chose à voir avec la connexion elle-même. Donc essayé de journalisation à l'aide de SSMS et même qui a échoué.
Finalement compris que l'exception a montré pour la simple raison que le serveur SQL a uniquement l'Authentification Windows est activé et l'Authentification SQL n'était pas à qui est ce que j'ai utilisé pour l'Authentification.
En bref, l'évolution de l'Authentification Mixte(SQL et Windows), fixe le problème pour moi. 🙂
Mon client a signalé cette erreur. J'ai trouvé qu'il était de jouer avec *.fichiers ldf. Il a copié *fichier ldf sur une base de données, et l'a renommée pour correspondre à une deuxième base de données (ce qui je lui ai demandé de le placer dans un dossier).
J'ai reproduit le même scénario, et reçu ce même message d'erreur dans mon système de développement. Erreur s'est fixé après la suppression de l' *fichier ldf(s).
J'ai vu cette erreur, quand un collègue a tenté de se connecter à une base de données qui a été protégé derrière un VPN. L'utilisateur a unknownling commuté à un réseau sans fil qui n'ont pas accès à un VPN. Une façon de tester ce scénario est de voir si vous pouvez établir une connexion à un autre moyen, tel que SSMS, et de voir si cela ne fonctionne pas ainsi.
Pour moi quand qui commence généralement qui se passe, j'ai du bureau à distance dans le service et au minimum redémarrer IIS. Il commence généralement à popping up juste après que j'ai de déployer le code. En de rares occasions, j'ai dû redémarrer les services SQL et IIS. J'ai écrit un script batch pour prendre un param (1 ou 2) et l'installation effectuée, soit de faire un redémarrage de IIS ( c-1), ou à toute nucléaire (c-2).
J'ai eu ce problème, tout en poursuivant l'exécution d'un test unitaire qui appelle une méthode qui utilise le traitement en parallèle.Je sais il y a des parties de EF qui ne sont pas thread-safe, alors je me demande si c'est un conflit où la connexion est ouverte et fermée de la synchronisation avec les opérations.
Ma trace de la pile a montré ceci:
Donc, c'est l'idée que j'ai suivi. Quand je suis retourné à un seul thread foreach au lieu de Parallèle.ForEach le problème a disparu.
Joey
- Je obtenir cette exception souvent lors de l'exécution sur ma machine de développement, en particulier après que j'ai fait un changement de code, reconstruire le code, puis d'exécuter une page web associée(s). Cependant, le problème s'en va pour moi si je bosse le CommandTimeout paramètre à 120 secondes ou plus (par exemple, définir le contexte.La base de données.CommandTimeout = 120 avant le LINQ déclaration). Alors que cela avait été initialement demandé il y a 3 ans, il peut aider une personne à la recherche d'une réponse. Ma théorie est VisualStudio prend du temps pour convertir le binaire construit des bibliothèques de code machine, puis lorsque vous tentez de vous connecter à SQL Server suivant celle de just-in-time compiler.
J'ai eu cette erreur et il a été causé par une faute de frappe dans la chaîne de connexion dans l'Application.config.
Dans mon cas, j'ai résolu l'erreur par l'ajout de mot de passe de connexion dans la chaîne de connexion.
Lors de la configuration du modèle EF, j'avais sélectionné l'option permettant d'exclure des données sensibles à partir de la chaîne de connexion. Donc, le mot de passe n'a pas été inclus au départ.
Essayer ce-
Ouvrez l'invite de commande en tant qu'administrateur et tapez ceci
netsh Winsock reset
Redémarrez votre ordinateur et essayez à nouveau.
Si vous utilisez un local .fichier mdf,
probablement un logiciel de synchronisation tels que Dropbox a tenté de synchroniser les deux fichiers journaux (.ldf)
dans les deux ordinateurs différents
vous pouvez supprimer les fichiers journaux à partir du Répertoire bin et assurez-vous que l' .mdf propriétés->Copie vers le Répertoire de Sortie ->Copier si plus récent
qui copie le texte sélectionné le fichier DB et il est log dans le Répertoire bin.
!Alerte - si votre fichier de base de données a changé dans le Répertoire bin de tous les changements mal être jetés!
ouvrir le Gestionnaire de Configuration SQL Server, puis cliquez sur sql server services une liste sera affichée dans la liste de droite, cliquez sur sql server et cliquez sur " start
SOLUTION:
Ajouter dans le Modèle:
Espace de noms:
Exemple: