C# 实体框架-基础提供程序在ConnectionString上失败

C# 实体框架-基础提供程序在ConnectionString上失败,c#,asp.net,wcf,entity-framework,connection,C#,Asp.net,Wcf,Entity Framework,Connection,在使用实体框架时,我将其拆分为自己的项目: 模型-包含实体模型 控制器-使用实体模型并包含业务规则 RivWorks.View.Web-网站 RivWorks.View.Services-WCF项目 网站上的一切都很正常。我能够调用控制器并获取有效的模型。当我从Web.Service尝试相同的操作时,我遇到以下错误: 错误: 基础提供程序在ConnectionString上失败。 堆栈跟踪: 位于System.Data.EntityClient.EntityConnection.Change

在使用实体框架时,我将其拆分为自己的项目:

  • 模型-包含实体模型
  • 控制器-使用实体模型并包含业务规则
  • RivWorks.View.Web-网站
  • RivWorks.View.Services-WCF项目
网站上的一切都很正常。我能够调用控制器并获取有效的模型。当我从Web.Service尝试相同的操作时,我遇到以下错误:

错误:
基础提供程序在ConnectionString上失败。
堆栈跟踪:
位于System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
位于System.Data.EntityClient.EntityConnection..ctor(字符串连接字符串)
位于System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
位于System.Data.Objects.ObjectContext..ctor(String connectionString,String defaultContainerName)
在RivWorks.Model.Entities.rivFeedSenties1..ctor(字符串连接字符串)
在RivWorks.Model.FeedStoreReadOnly..ctor(字符串连接字符串)
位于RivWorks.Controller.ProductManager.LookupProduct(字符串productID、字符串sku、字符串urlRef、字符串env、字符串logPath)

我有点搞不懂为什么,翻开错误日志,我终于发现连接字符串没有从网站的配置文件中读取。因此,我添加了一些代码来捕捉这些信息,现在,我将这些值硬编码到。比如:

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())
            {

但是,唉,它仍然给了我上述的错误!知道为什么吗?

我知道你一直在胡乱处理连接字符串来清理它们,但我猜你没有把密码周围的
”放进去吧


确实需要它们吗?

仔细检查您的连接字符串是否正确,稍有输入错误也会导致同样的错误

这是错误的:

 <add name="Entities" connectionString="metadata=res://*/OnlineAB.csdl|res://*/OnlineAB.ssdl|res://*/OnlineABSuperAdmin.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source.;initial catalog=

在MSDN上发现了一个线程,但一年多后未得到响应。很遗憾,非常非常遗憾。EntityFramework存储了类似的连接字符串,尽管我的线程有
from
provider connection string=
这可能是Keith出错的地方:
metadata=res://*/Models.doodlef.csdl://*/Models.doodlef.ssdl | res://*/Models.doodlef.msl;provider=System.Data.SqlClient;provider connection string=“Data Source=。\SqlExpress;Initial Catalog=zhpCoreContent;Integrated Security=True;MultipleActiveResultSets=True”“
它们是直接从App.Config中复制出来的。我对web.Config做了同样的操作-但是等待-硬编码不理解”。老兄,我希望我这里有另一个开发人员,他可以查看代码并看到隐藏在字符串中的简单错误。谢谢大家!我将“替换为字符串引号,上下文现在开始构建。转到下一个错误。是的,我听说你自己很容易忽略一些事情。有人能确切地说“引号”是从哪里来的吗?我很想自动结束它,而不必总是记住”此例外情况始终意味着删除“S”
 <add name="Entities" connectionString="metadata=res://*/OnlineAB.csdl|res://*/OnlineAB.ssdl|res://*/OnlineABSuperAdmin.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=.;initial catalog=