我希望有人可以帮我解决以下错误.发生错误的应用程序正在生产中运行,我自己从未遇到错误.但是每天大约20次我收到一封错误邮件告诉我:
底层提供程序在Open上失败.---> System.InvalidOperationException:连接未关闭.连接的当前状态是连接.
这是堆栈跟踪
System.Data.EntityException:基础提供程序在Open上失败.---> System.InvalidOperationException:连接未关闭.连接的当前状态是连接.在System.Data.ProviderBase.DbConnectionBusy.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)的System.Data.SqlClient.SqlConnection.Open()处于System.Data.EntityClient的HibernatingRhinos.Profiler.Appender.ProfiledDataAccess.ProfiledConnection.Open()处. EntityConnection.OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen,DbConnection originalConnection,String exceptionCode,String attemptsOperation,Boolean&closeStoreConnectionOnFailure)---内部异常堆栈跟踪结束---在System.Data.EntityClient.EntityConnection.OpenStoreConnectionIf(Boolean openCondition,DbConnection storeConnectionToOpen ,DbConnection originalConnection,String exceptionCode,String attemptsOperation,Boolean&closeStoreConnectionOnFailure)System.Data.Object.EntityConnection.Open()at System.Data.Objects.ObjectContext.EnsureConnection()at System.Data.Objects.ObjectQuery
1.GetResults(Nullable1 forMergeOption)at System .Data.Objects.ObjectQuery1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() at System.Linq.Enumerable.FirstOrDefault[TSource](IEnumerable1 sour ce)System.Data.Objects.ELinq.ObjectQueryProvider.b__1 [TResult](IEnumerable1 sequence) at System.Data.Objects.ELinq.ObjectQueryProvider.ExecuteSingle[TResult](IEnumerable1查询,Expression queryRoot)at System.Data.Objects.ELinq.ObjectQueryProvider.System.Linq.IQueryProvider.Execute [S](Expression expression)位于
C:\ Projects\GuideSites\GuideSites.DomainModel\Repositories\ClinicTermRepository.cs中的GuideSites.DomainModel.Repositories.ClinicTermRepository.GetClinicTermByGuideSiteId(Int32 guideSiteId)的System.Linq.Queryable.FirstOrDefault [TSource](IQueryable`1 source):line 20在GuideSites.Web.Frontend.Helpers.VerifyUrlHelper.RedirectOldUrls()在C:\项目\ GuideSites\GuideSites.Web.Frontend \助手\ VerifyUrlHelper.cs:线91在GuideSites.Web.Frontend.MvcApplication.Application_BeginRequest(对象发件人,EventArgs e)位于System.Web的System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()的C:\ Projects\GuideSites\GuideSites.Web.Frontend\Global.asax.cs:第412行.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedS ynchronously)
我通过EDMX模型使用EF4,我连接数据库的方式(MS SQL 2008)是通过基于HttpContext的每请求对象上下文,因此不会为每一条数据打开和关闭数据库的连接我需要一个给定的页面加载.
我的数据库上下文类如下所示:
public class DatabaseContext : IDisposable
{
private const string ContextName = "context";
private static dbEntities _dbEntities;
public dbEntities GetDatabaseContext()
{ …Run Code Online (Sandbox Code Playgroud)