web-dev-qa-db-fra.com

Comment déployer une application ASP.NET MVC 4 en utilisant localDB to local IIS sur Windows 7?

Lorsque j'essaie d'exécuter mon application ASP.NET MVC 4 à l'aide de Local IIS sous Windows 7 avec Visual Studio 2013. Je rencontre l'erreur suivante lorsque l'application essaie de se connecter à localDB\v11.0

Erreur serveur dans l'application '/'.

Une erreur liée au réseau ou spécifique à une instance s'est produite pendant que établir une connexion à SQL Server. Le serveur n'était pas trouvé ou n'était pas accessible. Vérifiez que le nom de l'instance est correct et que SQL Server est configuré pour autoriser les connexions distantes . (fournisseur: interfaces réseau SQL, erreur: 50 - Une erreur s'est produite lors de l'exécution de la base de données locale. Impossible de créer une instance automatique. Consultez le journal des événements de l'application de Windows pour plus de détails.)

Les 2 journaux d’événements sont

Une erreur inattendue s'est produite lors de la tentative d'accès à l'instance LocalDB configuration du registre. Consultez le journal des événements de l'application Windows pour détails de l'erreur.

et

Impossible d'obtenir un chemin de données d'application locale. Très probablement un profil d'utilisateur n'est pas chargé. Si LocalDB est exécuté sous IIS, assurez-vous que Le chargement de profil est activé pour l'utilisateur actuel.

La plupart des solutions que j'ai trouvées en ligne font référence à cet article: http://blogs.msdn.com/b/sqlexpress/archive/2011/12/09/using-localdb-with-full-iis-part-1-user-profile .aspx

La seule différence que je vois entre la situation décrite et ma situation est que le code d'erreur décrit est 0 alors que mon code d'erreur est 50. Cependant, la solution proposée ne fonctionne pas pour moi.

Je ne peux pas surmonter cette erreur, même si je définis true et que setProfileEnvironment est modifié et que j'ai passé des heures à jouer avec différents paramètres de processModel et pools d'applications.

17
allenylzhou

Je souffrais aussi du même problème, mais il existe une solution.

Accédez au serveur IIS, puis au pool d'applications à partir duquel votre application est exécutée. Dans les paramètres avancés du pool d'applications, il existe une option "Modèle de processus", sous laquelle se trouve une option "Identité". C'est par défaut l'identité du pool d'applications. Changez-le en Système local et vous avez terminé.

Et n'oubliez pas de placer le dossier App_Data dans le dossier WWW du serveur IIS

45
Neeraj Mehta

Essayez ceci, cela résoudra votre problème:

Modifiez le fichier applicationHost.config qui se trouve dans% windir%\system32\inetsrv\config \, en particulier dans la section ApplicationPools.

Changez IdentityType en NetworkService pour utiliser la base de données nouvellement créée.

<add name="ASP.NET v4.0" managedRuntimeVersion="v4.0">
   <processModel identityType="NetworkService" loadUserProfile="true" setProfileEnvironment="true" />
</add>
6
user3477321

Assurez-vous que le pool d'applications utilise une identité ayant accès à l'instance souhaitée de LocalDB. 

Désactivez ensuite l'emprunt d'identité ASP.NET dans les paramètres d'authentification de l'application. Sinon, l'application utilise le compte IUSR_MachineName pour accéder à la base de données. 

Cette configuration peut ne pas convenir à l'environnement de production, mais peut suffire au développement de bases de données et d'applications. 

2

En utilisant MVC 5.2.3.0, j'ai eu un problème similaire ... ajouté à mon web.config.

<!-- Configure the Sql Membership Provider -->  
<membership defaultProvider="SqlMembershipProvider" userIsOnlineTimeWindow="15">  
  <providers>  
    <clear />  
      <add   
        name="SqlMembershipProvider"   
        type="System.Web.Security.SqlMembershipProvider"   
        connectionStringName="SqlConn"  
        applicationName="MembershipAndRoleProviderSample"  
        enablePasswordRetrieval="false"  
        enablePasswordReset="false"  
        requiresQuestionAndAnswer="false"  
        requiresUniqueEmail="true"  
        passwordFormat="Hashed" />  
  </providers>  
</membership>  

https://docs.Microsoft.com/en-us/dotnet/framework/wcf/feature-details/how-to-use-the-aspnet-membership-provider

0
Pinch

Cela aidera peut-être quelqu'un. J'ai eu le même problème lors de l'installation d'une version vide d'Epise3rver 7.5+, mais il était clair que cela ne concernait aucun paramètre ni aucune configuration puisque mes collègues n'avaient pas ce problème. J'ai fini de désinstaller toutes les applications liées à MSSQL et de réinstaller MsSQL Express 2014. Et cela a fonctionné! J'avais déjà essayé d'installer 2014, mais cela ne changeait rien. Comme je l'ai dit, j'ai ensuite désinstallé tout ce qui est lié à MsSQL avant de réinstaller 2014. J'espère que ça aide.

0
Lautaro