實體框架 - ConnectionString上的底層提供程序失敗

asp.net c# connection entity-framework wcf

在使用實體框架時,我將其拆分為自己的項目:

  • RivWorks.Model - 包含實體模型
  • RivWorks.Controller - 使用實體模型並包含商業規則
  • RivWorks.View.Web - 該網站
  • RivWorks.View.Services - WCF項目

網站上的所有內容都運行良好。我可以調用Controller並獲得有效的模型。當我從Web.Service嘗試相同的事情時,我收到此錯誤:

錯誤:
ConnectionString上的底層提供程序失敗。
堆棧跟踪:
在System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
在System.Data.EntityClient.EntityConnection..ctor(String connectionString)
at System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
at System.Data.Objects.ObjectContext..ctor(String connectionString,String defaultContainerName)
在RivWorks.Model.Entities.RivFeedsEntities1..ctor(String connectionString)
在RivWorks.Model.FeedStoreReadOnly..ctor(String connectionString)
在RivWorks.Controller.ProductManager.LookupProduct(String productID,String sku,String urlRef,String env,String 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())
            {

但是,唉,它仍然給我上述錯誤!有什麼想法嗎?

一般承認的答案

我知道你一直在用你的連接字符串來消毒它們但是我猜你沒有把它們放在一起"密碼在哪裡?

他們真的需要嗎?



Related

許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因