Asp.Net MVC3 Ado.Net实体数据模型超时错误 - 实体框架命令执行超时错误

时间:2014-02-26 22:08:36

标签: c# .net asp.net-mvc-3 entity-framework

首先让我澄清一下,我为此搜索了stackoverflow解决方案,无论我发现什么都没有在我的情况下解决这个错误。用户每次都会不断收到此错误,并且当他们重新查询或刷新页面数据时,会显示没有错误。即使用户获得了用户友好的消息而不是Asp.net YSOD,这种行为肯定会刺激用户。

完整的错误讯息:      System.Data.EntityCommandExecutionException:执行命令定义时发生错误。有关详细信息,请参阅内部异常---> System.Data.SqlClient.SqlException:超时已过期。操作完成之前经过的超时时间或服务器没有响应。在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,Boolean breakConnection

简要介绍一下应用程序:它是一个.Net MVC3应用程序。有单独的业务逻辑项目和UI的单独项目(控制器和视图等..)。业务逻辑项目包含数据层,它是ADO.NET实体数据模型(我相信实体框架4.1)。 EF仅包含Sql Server存储过程(没有表/视图等)。与数据库的所有通信都通过SP函数导入进行。业务项目查询SP并返回IQueriable类型的业务对象,最终我们在控制器中使用它并作为JSON对象返回到jQuery AJAX调用。我们的SQL服务DB是2012年。

一个解决方案可以解决此问题 暂时 是我重启IIS 7的时候。

到目前为止我尝试过但未能解决此问题:

  1. 增加EF命令执行超时。
  2. 使用下面的模式

    使用(DbContext context = new DBContext()) {   context.Connection.Open();     //所有EF代码都在这里。   context.Connection.Close(); }

  3. 从数据库更新模型并重新创建所有新鲜的函数导入。

  4. 数据库端调优以提高查询性能。
  5. 还有一些......现在无法回想起来。
  6. 如果您需要任何其他信息,请与我们联系。任何帮助将非常感谢。

0 个答案:

没有答案