Échec de la génération d'une instance user de SQL Server en raison de l'échec de la récupération du path de données de l'application locale de l'user

projet net dans vs2010 j'ai une database et une table dans le dossier app_data, j'ai créé un package de deployment et ai importé le package dans un server iis qui est installé sur mon mechine local. maintenant je reçois ce message d'erreur en essayant de préformer une insertion.

Échec de la génération d'une instance user de SQL Server en raison de l'échec de la récupération du path de données de l'application locale de l'user. Assurez-vous que l'user possède un profil d'user local sur l'ordinateur. La connection sera coupée

la string de connection est:

Source de données =. \ SQLEXPRESS; AttachDbFilename = | DataDirectory | \ survey.mdf; Sécurité embeddede = True; Instance user = True

lors de l'exécution à l'intérieur VS2010 ça fonctionne bien.

comment puis-je résoudre ce problème?

Supprimez l' User Instance=True . Vous n'avez pas besoin d'instances RANU . Ensuite, assurez-vous que le count de service SQL Server Express dispose des droits nécessaires sur vos app_data:

 cacls <path\app_data> /E /T /G SQLServerMSSQLUser$<ComputerName>$SQLEXPRESS:F 

Cet article a résolu ce problème: http://support.microsoft.com/kb/2002980

Modifier À partir de l'article MSDN (au cas où le lien disparaîtrait):

Résolution pour Windows 7 et Windows Server 2008 R2

Pour toutes les applications Web exécutées sous IIS 7.5, quel que soit leur type de projet, procédez comme suit:

  1. Exécutez l'outil Gestionnaire des services Internet (IIS). Vous pouvez accéder à cet outil à partir du menu Démarrer de l'administrateur ou en tapant "inetmgr" dans la textbox Démarrer -> Rechercher de Windows et en sélectionnant l'outil inetmgr.
  2. Dans le volet gauche de l'outil Gestionnaire des services Internet, développez le nœud de la machine. Cliquez sur le nœud "Pools d'applications" afin que les pools d'applications s'affichent dans la window principale de l'outil de gestion.
  3. Si vous dépannez une application ASP.NET 2.0 / 3.0 / 3.5, select le pool d'applications "DefaultAppPool". Pour ASP.NET v4, select le pool d'applications "ASP.NET v4.0".
  4. Cliquez avec le button droit sur le pool d'applications sélectionné et choisissez "Paramètres avancés"
  5. Dans la boîte de dialog "Paramètres avancés", searchz la catégorie "Modèle de process". La première ligne de la catégorie sera la ligne "Identité".
  6. Cliquez sur la ligne "Identity" puis sur le petit button qui apparaît sur le côté droit de la cellule de valeur. Le button affiche le text "…"
  7. Une boîte de dialog appelée "Identité du pool d'applications" apparaîtra. Dans cette boîte de dialog, il y a deux buttons radio. Assurez-vous que le premier button radio intitulé "Compte embedded" est sélectionné.
  8. Dans la list déroulante ci-dessous le button radio choisissez "Service réseau" pour l'identité.
  9. Cliquez sur "Ok" pour fermer la boîte de dialog "Application Pool Identity".
  10. Cliquez sur "OK" pour fermer la boîte de dialog "Paramètres avancés".
  11. À ce stade, les modifications apscopes à l'identité du pool d'applications auront été enregistrées dans le magasin de configuration d'IIS 7.5.

Résolution pour les projets d'application Web et les sites Web

Pour les projets d'application Web (WAP) et les sites Web situés dans le dossier Documents d'un user hébergé sous n'importe quelle version d'IIS fonctionnant en tant que SERVICE RÉSEAU, procédez comme suit:

  1. Tout d'abord, confirmez que IIS a été configuré pour s'exécuter en tant que SERVICE RÉSEAU. C'est la valeur par défaut sur IIS6 et IIS7. Toutefois, si vous utilisez Windows 7 ou Windows Server 2008 R2, vous devez d'abord suivre les étapes ci-dessus dans «Résolution pour Windows 7 et Windows Server 2008 R2» pour que les pools d'applications IIS s'exécutent en tant que SERVICE RÉSEAU.
  2. À partir d'une invite de command, tapez net stop iisadmin / y. Cela entraînera l'arrêt des applications WAP ASP.NET en cours d'exécution.
  3. Quittez toutes les instances Visual Studio en cours d'exécution.
  4. NETWORK SERVICE doit avoir l'autorisation Lecture dans le dossier Visual Studio de niveau supérieur situé dans le dossier Documents de votre user. Le dossier Visual Studio aura des noms différents selon la version: "Visual Studio 2005", "Visual Studio 2008" ou "Visual Studio 2010".
  5. NETWORK SERVICE doit disposer d'permissions de lecture et d'écriture sur le dossier de projet de niveau supérieur de votre projet. Par exemple, si votre projet WAP s'appelle «MyCustomWebProject», le dossier «Documents \ Visual Studio 20xx \ Projects \ MyCustomWebProject» doit avoir un access en lecture et en écriture activé pour le SERVICE RÉSEAU. Ou, si votre projet webiste est appelé "MyCustomWebProject", le dossier "Documents \ Visual Studio 20xx \ Websites \ MyCustomWebProject" doit avoir un access en lecture et en écriture activé pour le SERVICE RÉSEAU.
  6. NETWORK SERVICE doit disposer d'permissions de lecture et d'écriture sur le dossier App_Data situé dans la structure de directorys de votre projet Web.

SOLUTION POUR L'ENVIRONNEMENT:

Win 7, IIS 7.0, Visual Studio 2010, file Database.mdf

Ouvrez la configuration Web et vérifiez la string de connection:

Important, assurez-vous que le file AttachDbFilename n'est pas suivi de C: \ inetpub \ <> \ App_Data \

 <add name="conexion" connectionSsortingng="Data Source=.\SQLEXPRESS; AttachDbFilename=|DataDirectory|Database.mdf; Integrated Security=True; User Instance=True" /> 

Dans IIS 7.0 Allez dans ApplicationPools, searchz le pool d'applications créé pour l'application.

  • Cliquez sur Paramètres avancés
  • Aller à Identité et ouvrez-le Sélectionnez Personnaliser
  • Compte et définissez le count d'administrateur du PC ou du server

Ensuite, allez sur le site Web dans IIS 7.0 et cliquez dessus …

  • Localisez et double-click l'icône Authentification
  • Cliquez sur Authentification anonyme et select Modifier, puis Sélectionner l'identité du pool d'applications

    Recherchez l'emprunt d'identité ASP.NET et modifiez-le, select Spécifier un user, puis entrez les informations d'identification.

Redémarrez IIS: cmd> iisreset / noforce ou click le button de réinitialisation de l'image

La solution avec moi est

  - On IIS ->> Application pool - Select Default App Pool (it may be different of your website, please choose your pool) - Advanced setting - Identity: ApplicationPoolIdentity - Load user profile: change to true Restart IIS