Entity Framework - Le fournisseur sous-jacent a échoué sur ConnectionString

asp.net c# connection entity-framework wcf

Question

En utilisant Entity Framework, je l'ai séparé en son propre projet:

  • RivWorks.Model - contient le modèle d'entité
  • RivWorks.Controller - Utilise le modèle d'entité et contient les règles biz
  • RivWorks.View.Web - Le site Web
  • RivWorks.View.Services - Projet WCF

Tout sur le site Web fonctionne bien. Je peux appeler le contrôleur et récupérer un modèle valide. Lorsque j'essaie la même chose sur le Web.Service, je reçois cette erreur:

ERREUR:
Le fournisseur sous-jacent a échoué sur ConnectionString.
TRACE DE LA PILE:
sur System.Data.EntityClient.EntityConnection.ChangeConnectionString (String newConnectionString)
sur System.Data.EntityClient.EntityConnection..ctor (String connectionString)
sur System.Data.Objects.ObjectContext.CreateEntityConnection (String connectionString)
sur System.Data.Objects.ObjectContext..ctor (String connectionString, String defaultContainerName)
sur RivWorks.Model.Entities.RivFeedsEntities1..ctor (String connectionString)
at RivWorks.Model.FeedStoreReadOnly..ctor (String connectionString)
sur RivWorks.Controller.ProductManager.LookupProduct (String productID, Chaîne sku, String urlRef, String env, String logPath).

Je suis un peu confus quant à pourquoi et en fouillant dans les journaux d'erreurs, j'ai finalement compris que les chaînes de connexion n'étaient pas lues dans le fichier de configuration du site Web. Donc, j'ai ajouté du code pour capturer cela et, pour l'instant, coder les valeurs en dur. Comme:

public dataObjects.NegotiateSetup LookupProduct(string productID, string sku, string urlRef, string env, string logPath)
{
    string feedConnString = "";
    string rivConnString = "";

    log.InitializeLogFile(logPath);
    dataObjects.NegotiateSetup resultSet = new dataObjects.NegotiateSetup();

    try { feedConnString = AppSettings.FeedAutosEntities_connString; }
    catch { feedConnString = @"metadata=res://*/Entities.FeedEntities.csdl|res://*/Entities.FeedEntities.ssdl|res://*/Entities.FeedEntities.msl;provider=System.Data.SqlClient;provider connection string='Data Source=***.***.***.***;Initial Catalog=******;Persist Security Info=True;User ID=******;Password="******";MultipleActiveResultSets=True'"; }

    try { rivConnString = AppSettings.RivWorkEntities_connString; }
    catch { rivConnString = @"metadata=res://*/Entities.RivEntities.csdl|res://*/Entities.RivEntities.ssdl|res://*/Entities.RivEntities.msl;provider=System.Data.SqlClient;provider connection string='Data Source=******;Initial Catalog=******_Dev;Persist Security Info=True;User ID=******;Password="******";MultipleActiveResultSets=True'"; }

    try
    {
        using (RivFeedsEntities1 _dbFeed = new FeedStoreReadOnly(feedConnString).ReadOnlyEntities())
        {
            using (RivEntities _dbRiv = new RivWorksStore(rivConnString).NegotiationEntities())
            {

Mais, hélas, cela me donne toujours l'erreur ci-dessus! Des idées pourquoi?

Réponse acceptée

Je sais que vous avez manipulé vos chaînes de connexion pour les assainir, mais je suppose que vous n’avez pas mis le " est autour du mot de passe?

Sont-ils réellement nécessaires?



Related

Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow
Sous licence: CC-BY-SA with attribution
Non affilié à Stack Overflow