web-dev-qa-db-fra.com

Erreur: Impossible de générer une instance d'utilisateur de SQL Server

J'essaie de me connecter à un MDF. Je suis même allé jusqu'au bout de la réinstallation de SQL Server Express (c'est maintenant la seule version de SQL installée sur ma machine, alors que j'avais auparavant 05 dev et express). J'ai vérifié que tous les chemins étaient corrects et jusqu'à présent, mon google-fu ne m'a pas aidé.

Le message d'exception complet est: 

Échec de la génération d'une instance d'utilisateur SQL Server en raison d'une erreur liée au démarrage du processus pour Pour l'instance d'utilisateur. La connexion sera coupée.

La chaîne de connexion est:

<add name= "CustomerEntities"
     connectionString="metadata=res://*/Data.CustomerModel.csdl|res://*/Data.CustomerModel.ssdl|res://*/Data.CustomerModel.msl;
     provider=System.Data.SqlClient;
     provider connection string='Data Source=.\SQLEXPRESS;
     AttachDbFilename=\App_Data\CustomerDb.mdf;
     Integrated Security=True;
     User Instance=True'"
     providerName="System.Data.EntityClient" />

Information additionnelle:

Plusieurs des références à cette erreur trouvée en ligne ne me concernent pas. Par exemple, l'un de ceux que j'ai vus est l'endroit où cette erreur se produit lors d'une tentative de démarrage de l'instance d'utilisateur sur un bureau distant (je le fais localement). Tandis qu'un autre suggère que cela a à voir avec les fichiers restants d'une ancienne installation express ... J'ai regardé dans les emplacements prescrits et n'ai pas trouvé ces artefacts. J'ai également essayé d'exécuter sp_configure 'user instances enabled', '1', mais il était indiqué qu'il était déjà défini sur 1.

28
Joel Martinez

ok, ça marche maintenant! Je suppose que c’était un problème complexe ... les étapes que j’ai prises pour le résoudre sont les suivantes:

  1. Modification de la propriété suivante dans la chaîne de connexion (notez la différence subtile): AttachDbFilename=|DataDirectory|CustomerDb.mdf;
  2. Supprimé le contenu du répertoire suivant: c:\Users\<user name>\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS. Je pensais avoir déjà cherché cela auparavant, mais j'avais en fait cherché dans le dossier Microsoft Sql Server. Encore une fois, une différence subtile.

Une fois que j'ai fait ces deux choses, la connexion a commencé à fonctionner :-D

68
Joel Martinez

Même si les réponses ci-dessus ont résolu le problème de nombreuses personnes, je trouve toujours que celles-ci ne répondent pas à l’essence du problème. La réponse la plus proche de @sohaiby ci-dessus est la plus proche. Mais cela renvoie à tort à l'utilisation de Management Studio.

Le message d'erreur au-dessus de cette rubrique indique très clairement que le problème provient de la génération d'une instance d'utilisateur. Voici comment chaque instance est utilisée et comment elle est utilisée: https://msdn.Microsoft.com/en-us/library/ms254504(v=vs.110).aspx

Personnellement, j'ai rencontré ce problème lors du basculement d'une connexion de base de données du mode d'authentification Windows vers l'authentification SQL Server. Je l'ai résolu en modifiant simplement une partie de la chaîne de connexion en: "User Instance = false;" au lieu de "User Instance = true;", ce qui a bien fonctionné avec l'authentification Windows.

Après avoir changé pour "User Instance = false;" ma connexion a bien fonctionné sans aucune manipulation supplémentaire. Je ne peux pas insister pour que cela fonctionne ou convienne dans tous les scénarios. Cependant, je recommanderai certainement de l'essayer avant les autres méthodes drastiques décrites ci-dessus, telles que l'effacement des répertoires de travail SQL Server.

5
Boris Zinchenko

J'ai rencontré la même erreur lorsque j'ai déplacé le code d'une machine à une autre. J'utilise VS2010 et SQLEXPRESS 2008 vient avec.

Astuce, la suppression de tout le contenu du dossier suivant "C:\Utilisateurs\Nom d'utilisateur\AppData\Local\Microsoft\Serveur de données SQL\SQLEXPRESS" a fonctionné pour moi.

4
DSH

Je règle ce problème avec mon fichier mdf dans une application de formulaire Windows et je ne fais que redémarrer mon ordinateur et mon problème est résolu. 

0
Kishan

Comme indiqué par d'autres, la suppression du contenu du répertoire: c:\Utilisateurs \\ AppData\Local\Microsoft\Serveur SQL Microsoft Data\SQLEXPRESS l'a résolu pour moi. Une note qui peut aider les autres utilisateurs de Windows 7 à parcourir le répertoire c:\users\nom_utilisateur à partir du navigateur de documents n’affiche pas le dossier AppData qui m’a jeté pendant un moment (car je pensais ne pas avoir le répertoire AppData) tant que J'ai découvert qu'il existe bel et bien (mais ne s'affiche pas dans le navigateur de documents de Windows 7), il vous suffit de taper le nom du chemin complet pour y accéder. 

0
Jarnal

J'ai commencé à avoir cette erreur ce matin dans un environnement de déploiement de test. J'utilisais SQL Server Express 2008 et l'erreur que je recevais était 

"Échec de la génération d'une instance d'utilisateur SQL Server en raison d'un échec du démarrage du processus pour l'instance d'utilisateur. La connexion sera fermée."

Incertain de ce qui l’a provoquée, j’ai suivi les instructions de ce billet et d’un autre article concernant la suppression du répertoire "C:\Utilisateurs\Nom d'utilisateur\AppData\Local\Microsoft\Microsoft SQL Server Data\SQLEXPRESS", mais en vain.

Qu'est-ce que le truc pour moi était de changer la chaîne de connexion de

"Source de données =.\SQLExpress; Catalogue initial = DBFilePath; Sécurité intégrée = SSPI; MultipleActiveResultSets = true"

à 

"Source de données =.\SQLExpress; Catalogue initial = DBName; Sécurité intégrée = SSPI; MultipleActiveResultSets = true" 

0
Hamid Shahid

Outre les autres solutions proposées ici, celle-ci peut également être utile. Assurez-vous que le pool d'applications s'exécute en tant que service réseau et non pas ApplicationPoolIdentity.

Cette solution a été trouvée ici: http://blogs.msdn.com/b/webdevelopertips/archive/2010/05/06/tip-106-did-you-know-how-tore-create-the-aspnetdb- mdf-file.aspx

0
Derrick