Question

J'ai une application asp.net-mvc avec la base de données d'adhésion par défaut. J'y accède par ADO.NET Entity Framework.

Maintenant, je veux le déplacer vers IIS, mais plusieurs problèmes sont apparus. Je devais installer SQL Server Management Studio, créer une nouvelle base de données, y importer toutes les données du fichier .MDF précédent. La seule chose qui reste à faire (pour autant que je sache) est de changer en chaîne de connexion. Cependant, je n'en ai pas vraiment l'habitude et je continue à avoir le mot-clé non pris en charge: "source de données". exception. Voici ma chaîne de connexion:

<add name="ASPNETDBEntities" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.EntityClient" />

Des idées, qu'est-ce qui ne va pas?

Était-ce utile?

La solution

Ce que vous avez est une chaîne de connexion ADO.NET valide, mais PAS , il s'agit d'une chaîne de connexion Entity Framework valide.

La chaîne de connexion EF devrait ressembler à ceci:

<connectionStrings> 
  <add name="NorthwindEntities" connectionString=
     "metadata=.\Northwind.csdl|.\Northwind.ssdl|.\Northwind.msl;
      provider=System.Data.SqlClient;
      provider connection string=&quot;Data Source=SERVER\SQL2000;Initial Catalog=Northwind;Integrated Security=True;MultipleActiveResultSets=False&quot;" 
      providerName="System.Data.EntityClient" /> 
</connectionStrings>

Il manque tous les éléments metadata = et providerName = dans votre chaîne de connexion EF ...... vous n'avez en gros que le contenu du chaîne de connexion fournisseur partie.

L'utilisation du concepteur EDMX devrait créer une chaîne de connexion EF valide dans votre web.config ou app.config.

Marc

UPDATE: OK, je comprends ce que vous essayez de faire: vous avez besoin d’un deuxième " ADO.NET " chaîne de connexion uniquement pour la base de données d'utilisateurs / membres ASP.NET. Votre chaîne est correcte, mais nom_fichier est erroné. Elle doit être "System.Data.SqlClient". - cette connexion n'utilise pas ENtity Framework - ne spécifiez pas le " EntityClient " pour cela alors!

<add name="ASPNETMembership" 
     connectionString="Data Source=MONTGOMERY-DEV\SQLEXPRESS;Initial Catalog=ASPNETDB;Integrated Security=True;" 
     providerName="System.Data.SqlClient" />

Si vous spécifiez providerName = System.Data.EntityClient == > Chaîne de connexion Entity Framework (avec la métadonnée = et tout).

Si vous avez besoin et spécifiez providerName = System.Data.SqlClient == > straight ADO.NET Chaîne de connexion SQL Server sans tous les ajouts EF

Autres conseils

Ce problème peut survenir lorsque vous référencez vos chaînes de connexion web.config (ou app.config) par index ...

var con = ConfigurationManager.ConnectionStrings[0].ConnectionString;

La chaîne de connexion de base zéro n'est pas toujours celle de votre fichier de configuration car elle hérite par défaut des autres utilisateurs plus haut dans la pile .

Les méthodes recommandées consistent à accéder à votre connexion par nom ...

var con = ConfigurationManager.ConnectionStrings["MyConnection"].ConnectionString;

ou pour effacer d'abord l'élément connnectionStrings de votre fichier de configuration ...

<connectionStrings>
    <clear/>
    <add name="MyConnection" connectionString="...

J'avais le même problème.
mais ce code fonctionne bien essayez-le.

<add name="MyCon" connectionString="Server=****;initial catalog=PortalDb;user id=**;password=**;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />

J'ai eu ce problème lorsque j'ai commencé à utiliser Entity Framework, c'est-à-dire lorsque je n'ai pas modifié l'ancienne connexion du serveur SQL en connexion EntityFrameWork.

Solution: dans le fichier où la connexion est établie via le fichier web.config " add name = " Entities ". connectionString = XYZ " ;, assurez-vous que vous faites référence à la connexion correcte, dans mon cas, je devais le faire

        public static string MyEntityFrameworkConnection
    {
        get
        {
             return ConfigurationManager.ConnectionStrings["Entities"].ConnectionString;
        }

    }

appelez MyEntityFrameworkConnection chaque fois que la connexion doit être établie.

private string strConnection= Library.DataAccessLayer.DBfile.AdoSomething.MyEntityFrameworkConnection;

remarque: la connexion dans le fichier web.config sera générée automatiquement lors de l'ajout du modèle d'entité à la solution.

Je sais que c'est un ancien message, mais j'ai récemment eu la même erreur. Alors, pour ce que ça vaut, voici une autre solution:

Il s'agit généralement d'une erreur de chaîne de connexion. Veuillez vérifier le format de votre chaîne de connexion. Vous pouvez rechercher la "chaîne de connexion de l'entité" ou suivre les suggestions ci-dessus.

Cependant, dans mon cas, la chaîne de connexion était correcte et l'erreur était due à quelque chose de complètement différent, aussi j'espère que cela aidera quelqu'un:

  1. J'ai eu une erreur EDMX : il y avait une nouvelle table de base de données dans EDMX et la table n'existait pas dans ma base de données (ce qui est drôle, c'est que l'erreur n'était pas très évidente) parce qu’elle n’apparaissait pas dans mon EDMX ni dans ma fenêtre de sortie, elle était dissimulée dans Visual Studio dans la fenêtre «Liste des erreurs» sous «Avertissements»). J'ai résolu cette erreur en ajoutant la table manquante à ma base de données. Mais j’étais en train d’essayer d’ajouter une procédure stockée et d’obtenir le message d'erreur «source de données». Vous trouverez ci-dessous comment j'ai résolu le problème:

  2. Erreur de procédure stockée : j'essayais d'ajouter une procédure stockée et, chaque fois que je l'ajoutais via la fenêtre de conception EDMX, une erreur "source de données" était générée. La solution consistait à ajouter la procédure stockée à blanc (j'ai conservé le nom et la déclaration de la procédure stockée, mais j'ai supprimé le contenu de la procédure stockée et je l'ai remplacé par «select 1», puis j'ai réessayé de l'ajouter à l'EDMX). Ça a marché! Vraisemblablement, EF n'a pas aimé quelque chose à l'intérieur de mon proc stocké. Une fois que j’avais ajouté le proc à EF, je pouvais alors mettre à jour le contenu de celui-ci dans ma base de données pour qu’il corresponde à ce que je voulais et cela fonctionne. L’erreur '' datasource '' résolue.

étrangeté

Je recevais la même erreur, puis j'ai mis à jour ma chaîne de connexion comme ci-dessous,

<add name="EmployeeContext" connectionString="data source=*****;initial catalog=EmployeeDB;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework" providerName="System.Data.SqlClient" />

Essayez ceci, il résoudra votre problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top