【发布时间】:2011-01-10 15:49:18
【问题描述】:
在使用实体框架时,我已将其拆分为自己的项目:
- RivWorks.Model - 包含实体模型
- RivWorks.Controller - 使用实体模型并包含商业规则
- RivWorks.View.Web - 网站
- RivWorks.View.Services - WCF 项目
网站上的一切都运行良好。我可以调用控制器并返回一个有效的模型。当我从 Web.Service 尝试同样的事情时,我收到了这个错误:
错误:
ConnectionString 上的基础提供程序失败。
堆栈跟踪:
在 System.Data.EntityClient.EntityConnection.ChangeConnectionString(String newConnectionString)
在 System.Data.EntityClient.EntityConnection..ctor(String connectionString)
在 System.Data.Objects.ObjectContext.CreateEntityConnection(String connectionString)
在 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())
{
但是,唉,它仍然给我上面的错误!任何想法为什么?
【问题讨论】:
-
在 MSDN 上找到一个帖子,一年多没有回答。好难过,好难过。 social.msdn.microsoft.com/Forums/en/adodotnetentityframework/…
标签: c# asp.net wcf entity-framework connection