2009-03-28 5 views
5

J'utilise ASP.NET MVC sur un serveur partagé et j'ai des problèmes pour me connecter à SQL via System.Data.EntityClient. Ci-dessous la chaîne de connexion que mon fournisseur de branchement m'a donné pour me connecter à SQL et celle que VS a configurée pour ma machine locale pendant le développement, à quoi devrait ressembler ma chaîne de connexion quand je la déploie sur le serveur?ASP.NET System.Data.EntityClient chaîne de connexion aide

De mon fournisseur d'hébergement:

<add name="WeddingsDBEntities" 
    connectionString="data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;" 
    providerName="System.Data.EntityClient"/> 

De VS (au cours du développement):

connectionString="metadata=res://*/Models.WeddingsModel.csdl|res://*/Models.WeddingsModel.ssdl|res://*/Models.WeddingsModel.msl;provider=System.Data.SqlClient;provider connection string="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\WeddingsDB.mdf;Integrated Security=True;User Instance=True;MultipleActiveResultSets=True"" providerName="System.Data.EntityClient" 

Merci!

Répondre

7

Vous avez pour envelopper la chaîne de connexion instide une chaîne de connexion de l'entité qui est dans le format de

<add name="Name" 
    connectionString="metadata=<Conceptual Model>|<Store Model>|<Mapping Model>; 
    provider=<Underlying Connection Provider>; 
    provider connection string=&quot;<Underlying ConnectionString>&quot;" 
    providerName="System.Data.EntityClient"/> 

Au lieu de:

<add name="WeddingsDBEntities" 
    connectionString="data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;" 
    providerName="System.Data.EntityClient"/> 

Utilisez ceci:

<add name="WeddingsDBEntities" 
    connectionString="metadata=res://*/Models.WeddingsModel.csdl|res://*/Models.WeddingsModel.ssdl|res://*/Models.WeddingsModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data Source=<server name>; Initial Catalog=<db name>; User ID=<user ID>; Password=<password>;MultipleActiveResultSets=True&quot;" 
    providerName="System.Data.EntityClient"/> 
+0

Merci. Ok, cela a fonctionné, même si maintenant je reçois une erreur 500 - "Il y a un problème avec la ressource que vous recherchez, et il ne peut pas être affiché.". Peut-il y avoir quelque chose de mal avec les chemins res: //? pourquoi commencent-ils par '* /'? – Birdman

+0

Avez-vous remplacé la source de données, le nom de base de données, l'ID utilisateur et le mot de passe? – bendewey

+0

Essayez de retirer la dernière partie de la chaîne de connexion du fournisseur qui indique MultipleResultSets = true; – bendewey

0

Remplacez le fournisseur par entityclient par sqlclient (en supposant que le code commence par EF).

providerName = "System.Data.EntityClient" />

à

providerName = "System.Data.SqlClient" />