我使用实体框架5代码首先,我用工作模式的存储库和单位,并有我的域模型,存储库和服务层中的Windows Azure云服务中运行的MVC应用程序内的精细工作。 我使用统一为IOC和注入储存库,控制器,和根据需要的服务等级,并且使用每个请求的寿命。 据伟大的工作。
然而,当我使用的域名,仓库和EF5的DbContext,在Azure中Worker角色相同的代码/类库,指向同一个SQL Azure数据库为MVC应用程序,我得到奇怪的错误,我不明白从MVC应用程序。 需要注意的是,在这一点上,我只是做读取(选择),没有更新的交易。 下面的错误信息似乎暗示,它无法打开连接。
在辅助角色,我有一个引导程序静态类建立的容器中,它注册的所有服务。 在辅助角色的启动我必须做一些工作,所以我把引导程序以注册服务,那么我解决他们夫妇立即使用。 这些服务得到注射库,这又与我的DbContext得到注入,全部由IoC容器建立。 对于的DbContext,我在IoC容器中使用统一的HierarchicalLifeTimeManager。
当我的服务类尝试在运行辅助角色从数据库中读取数据,它就会出现以下错误:
The underlying provider failed on Open. at System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition, DbConnection storeConnectionToOpen, DbConnection originalConnection, String exceptionCode, String attemptedOperation, Boolean& closeStoreConnectionOnFailure)
at System.Data.EntityClient.EntityConnection.Open()
at System.Data.Objects.ObjectContext.EnsureConnection()
at System.Data.Objects.ObjectQuery`1.GetResults(Nullable`1 forMergeOption)
at System.Data.Objects.ObjectQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at MyApp.Persistence.EF.RepositoryBase`1.Find(Expression`1 where, Expression`1[] includeProperties)
此完全相同的方法调用已经从MVC应用程序做工精细。 我想有一些错误的DbContext的辅助角色,或许与国际奥委会的寿命范围,但是这只是猜想。
没有人有任何想法可能是什么此异常的原因是什么? 任何使用EF,国际奥委会,回购/ UOW和Azure的辅助角色? 建议?