Entity Framework: "Le fournisseur sous-jacent a échoué sur Open"
Lorsque j'essaie d'insérer un enregistrement, j'ai cette erreur : Le fournisseur sous-jacent échoué sur Ouvrir.
Cette erreur se produit uniquement avec IIS et non avec la maladie de von willebrand 2008 du serveur web.
Dans l'EventViewer, j'obtiens cette Erreur d'Application : n'a pas pu générer un utilisateur instance de SQL Server en raison d'une défaillance dans le processus de l'instance utilisateur. La connexion sera fermée. [CLIENT: ]
<add name="ASPNETDBEntities"
connectionString="
metadata=res://*/Models.FriendList.csdl|res://*/Models.FriendList.ssdl|res://*/Models.FriendList.msl;
provider=System.Data.SqlClient;
provider connection string="
Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.MDF;
Integrated Security=True;
Connect Timeout=30;
User Instance=True;
MultipleActiveResultSets=True""
providerName="System.Data.EntityClient" />
Je suis en utilisant aspnetdb.fichier mdf, et pas de base de données externe.
J'ai cherché assez pour cela, mais n'en utilisent pas.
Tout fonctionne bien avec la maladie de von willebrand serveur web
source d'informationauteur pokrate | 2010-05-16
Vous devez vous connecter pour publier un commentaire.
Vous devez créer un compte sql pour votre serveur web pour accéder à la base de données aspnetdb. Il est actuellement à l'aide de l'authentification intégrée (essaie d'ouverture de session avec l'identité du serveur web est l'aide à l'exécution de l'application).
L'exemple ci-dessous utilise intégrée auth. Je voudrais utiliser l'authentification SQL.
http://msdn.microsoft.com/en-us/library/ff649314.aspx
J'ai fait le même problème et après avoir fait le débogage, j'ai vu que je suis de la création de la nouvelle instance de la base de données de l'Entité sur chaque action et de faire de nouvelle instance de la base de données de l'Entité signifie ouvrir une nouvelle connexion avec la db.
Ci-dessous le code :
par l'appel de la variable de nouveau et de nouveau son la création d'une nouvelle instance de DbEntites et de l'ouverture d'une nouvelle connexion à la db.
alors, j'ai écrit une petite fonction pour cela et qui a résolu mon problème. Maintenant, plus aucune erreur.
et dernière chose dans votre connectionstring veuillez ajouter "Connect Timeout=30;"
thats de travail, donc parfait pour moi
À l'aide de la nouvelle instance de la base de données de l'Entité sur chaque action ne doit pas physiquement créer une connexion à votre serveur SQL server. Entity Framework utiliser le pool de connexion créé pour votre (processus, domaine d'application, la chaîne de connexion) tel que configuré dans votre chaîne de connexion pour éviter de créer de nouvelles connexions.
De cette question de l'environnement et de peaufiner les paramètres (dans votre conn chaîne) comme ci-dessous devraient régler le problème-
Min Piscine De Taille=1;
Max Pool Taille=100; //par défaut
Connect Timeout=15; //en quelques secondes
Mise en commun=true;
Dans mon cas, j'ai été en utilisant Sql CE, et ma chaîne de connexion a été mis en place avec un chemin d'accès absolu au lieu inf |DataDirectory| variable. Changé et il a commencé à travailler sur le serveur.
Évidemment, il a bien fonctionné sur la machine de développement.
Ajouter le dessous de l'attribut dans la chaîne de Connexion qui vous ont donné.
C'est peut-être trop tard pour répondre, mais j'ai eu le même problème.
J'ai ajouté le champ délai d'expiration (5 minutes). J'ai laissé un exemple.
Peut-être que ce code pourrait être améliorer.
En outre, cette exception est levée lors de la table que vous allez manipuler est supprimé ou n'existe pas
Cette exception semble être jetés quand il n'y a rien qui pourrait causer à votre chaîne de connexion non valide. Informations d'identification non valides ont été la cause pour moi.
J'ai eu un problème similaire et je suis aussi à l'aide de IIS. J'ai ouvert une fenêtre de commande et tapé dans
iisreset
. Le problème est résolu.Ce problème vient de la Base de données ajoutées dans ServerExplorer que l'authentification Windows. Lorsque vous utilisez l'authentification sql au moment de la base de données ajoutées dans ServerExplorer le problème se résout. Si encore à l'aide de l'authentification Windows et éviter cette exception fournir l'id utilisateur et le mot de passe de base de données dans connectionstring dans webconfig de fichier.
Ce problème ne se pose que lorsque nous héberger le service dans IIS