Comment autoriser IIS à utiliser une firebase database locale à partir d’un projet ASP.NET MVC?

Je vais faire la démonstration d’un site Web ASP.NET MVC sur un réseau local. Cette application a une connexion à une firebase database:

   

J’aimerais que cette firebase database puisse être utilisée à la fois par IIS et chaque fois que j’exécute mon application localement. J’ai créé un site sur IIS. Il exécute .NET v4. Mon projet réside dans c:\inetpub\www\ebc . Je peux publier le site Web mais recevoir cette erreur en consultant la page:


“Une erreur liée au réseau ou spécifique à une instance s’est produite lors de l’établissement d’une connexion à SQL Server. Le serveur était introuvable ou inaccessible. Vérifiez que le nom de l’instance est correct et que SQL Server est configuré pour autoriser les connexions à distance. (Fournisseur: Interfaces réseau SQL, erreur: 50 – Une erreur d’exécution de la firebase database locale s’est produite. Une erreur inattendue s’est produite à l’intérieur d’un appel de méthode d’API d’instance LocalDB. Consultez le journal des événements de l’application Windows pour plus de détails sur l’erreur. ”

Je sais que je dois autoriser les connexions distantes au serveur SQL via Microsoft SQL Server Manager? Y a-t-il un moyen de le faire ailleurs?

La meilleure solution consiste à utiliser l’expression SQL, mais si vous ne le souhaitez pas, vous devez suivre quelques étapes pour que votre application mvc fonctionne avec localdb.

  1. Ouvrez l’invite de commande Visual Studio en tant qu’administrateur.
  2. exécutez sqllocaldb share v11.0 IIS_DB (la firebase database sera alors partagée et IIS peut y accéder)
  3. Modifiez la chaîne de connexion du site pour qu’elle pointe vers l’instance partagée de la firebase database: Data Source=(LocalDb)\.\IIS_DB puis publiez à nouveau

Notez qu’à ce stade, vous pouvez recevoir une erreur d’access refusé et qu’il existe un moyen de la résoudre.

  1. Allez dans visual studio => databaseexplorer => ajoutez une connexion
  2. Pour le nom du serveur, entrez (LocalDb)\.\IIS_DB puis cliquez avec le bouton droit de la souris sur la connexion, choisissez une nouvelle requête et exécutez cette commande.

     create login [IIS APPPool\DefaultAPPPool] from windows; exec sp_addsrvrolemember N'IIS APPPool\DefaultAPPPool, sysadmin 

Lorsque plusieurs versions de SQL Server localDB sont installées sur un ordinateur, cette erreur est très courante.

Essayez d’utiliser (localdb)\mssqllocaldb comme nom de serveur commun pour vous connecter à l’instance automatique LocalDB au lieu de “v11.0” ou “v12.0”.

L’instance localedb automatique ci-dessus, a un nom par défaut pour toute la version et évite les conflits entre nom et version.

Important : lors de la mise à jour de la firebase database locale vers une nouvelle version, n’oubliez pas que la firebase database créée avec une version plus ancienne ne fonctionne pas avec la nouvelle.

Voir cet article: Ces deux articles sur l’utilisation de LocalDB avec Full IIS devraient vous donner plus d’informations. En particulier, la deuxième partie semble pertinente, mais la première contient également un certain contexte.

  1. Partie 1: Profil d’utilisateur
  2. Partie 2: Propriété de l’instance

Crédit: IIS se connectant à LocalDB