web-dev-qa-db-fra.com

MVC 4 Connectionstring à SQL Server 2012

J'ai créé une toute nouvelle application MVC 4 en C # à l'aide de Visual Studio 2012. J'essaie de me connecter à une toute nouvelle instance SQL Server 2012 (Standard) mais je n'arrive pas à obtenir correctement ma chaîne de connexion.

Ma chaîne de connexion depuis mon Web.config:

  <connectionStrings>
    <add name="ConnectionStringName"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=MyServerName;
                          Initial Catalog=MyDatabaseName;
                          Integrated Security=False;
                          User ID=MyUserID;Password=MyPassword;
                          MultipleActiveResultSets=True" />
  </connectionStrings>

Chaque fois que je vais dans Configuration ASP.NET à partir de Visual Studio, la page se charge, mais dès que je clique sur "Sécurité", je reçois le message suivant:

Il y a un problème avec votre magasin de données sélectionné. Cela peut être dû à un nom de serveur ou des informations d'identification non valides, ou à une autorisation insuffisante. Cela peut également être dû au fait que la fonction de gestionnaire de rôles n'est pas activée. Cliquez sur le bouton ci-dessous pour être redirigé vers une page où vous pouvez choisir un nouveau magasin de données.

Le message suivant peut aider à diagnostiquer le problème: Impossible de se connecter à la base de données SQL Server.

J'ai vérifié que mes informations d'identification sont correctes (je peux les utiliser pour me connecter via SQL Management Studio). Y a-t-il autre chose que je peux vérifier? Je suis perplexe.

MISE À JOUR:

Je ne pouvais pas me connecter à mon instance par défaut à partir de SQL Management Studio (MSSQLSERVER), j'ai donc réinstallé SQL, créant une instance nommée (LHSQLSERVER). Maintenant, je peux me connecter à cette instance dans SQL Management Studio, mais je reçois toujours la même erreur de la configuration ASP.NET.

Une autre chose à noter - l'outil aspnet_regsql que j'ai exécuté provenait du dossier Framework64\v4.0.30319. Est-ce correct si j'utilise .NET 4.5?

MISE À JOUR 2:

J'ai essayé de remplacer ma chaîne de connexion par une chaîne de connexion à un site distant (c'est-à-dire mysite.winhost.com) que je connais fonctionne, mais j'obtiens toujours la même erreur dans l'outil de configuration de site Web ASP.NET? FWIW J'utilise également Windows 8, mais je ne pensais pas que cela importerait.

Autre chose que je peux vérifier?

MISE À JOUR 3:

J'ai trouvé cet article qui dit que vous n'avez plus besoin de l'outil aspnet_regsql pour MVC 4, j'ai donc réexécuté l'outil en supprimant tous les paramètres, mais encore une fois, pas de chance. Est-ce que quelqu'un a déjà fait ça avec MVC 4?

MISE À JOUR 4:

Voir ma réponse ci-dessous pour la solution que j'ai trouvée.

22
lhan

Merci à tous pour votre contribution, j'ai finalement trouvé une solution. Je suis tombé sur cet article qui décrit la nouvelle adhésion simple que VS 2012 utilise pour MVC 4. Je viens de recommencer, créer une nouvelle base de données, un nouveau projet MVC 4, et juste suivi les instructions de l'article. Effectivement, le simple "enregistrement" sur la page Web a créé les tables dans ma base de données et stocké les informations utilisateur.

1
lhan

Si vous pouvez vous connecter à l'aide de Sql Management Studio, je pense qu'il doit y avoir un problème avec la chaîne de connexion -

Chaîne de connexion que vous utilisez le format suivant -

Data Source=myServerAddress;Initial Catalog=myDataBase;Integrated Security=SSPI;
User ID=myDomain\myUsername;Password=myPassword;

Essayez d'utiliser IP Address, Port dans le champ Source de données comme -

 <connectionStrings>
    <add name="ConnectionStringName"
        providerName="System.Data.SqlClient"
        connectionString="Data Source=190.190.200.100,1433;
                          Initial Catalog=MyDatabaseName;
                          Integrated Security=False;
                          User ID=MyUserID;Password=MyPassword;
                          MultipleActiveResultSets=True" />
  </connectionStrings>

OU essayez d'autres variantes -

Sécurité standard

Server=myServerAddress;Database=myDataBase;User Id=myUsername;Password=myPassword;

Connexion sécurisée

Server=myServerAddress;Database=myDataBase;Trusted_Connection=True;

Connexion à une instance SQL Server

Server=myServerName\myInstanceName;Database=myDataBase;User Id=myUsername;
Password=myPassword;

Référence - http://www.connectionstrings.com/sql-server-2012

12
Parag Meshram

n'a pas essayé avec SQL 2012 mais cette chaîne de connexion a bien fonctionné avec SQL 2008 R2

connectionString="Server=ServerAddress;Database=DataBaseName;User Id=Username;Password=Password;"

ou

connectionString="user id=UserName;password=Password;initial catalog=DatabaseName;data source=SQLServerIPorFQDN;Connect Timeout=30;"
2
manuel

Vous devrez peut-être activer le gestionnaire de rôles dans la configuration

<roleManager enabled="true"/>
2
Prabhu Murthy

Bien que la réponse de lhan16 m'ait aidé, il aurait été plus simple de dire que tout ce que vous aviez besoin d'ajouter était un DefaultConnection. J'ai commencé au même endroit et la connexion à la base de données utilisée par MVC ne fonctionne pas pour le cadre de sécurité. Les auteurs du framework n'ont jamais imaginé que vous n'utiliseriez pas DefaultConnection.

1
Glenn Gordon