首先让我澄清一下,我为此搜索了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的时候。
到目前为止我尝试过但未能解决此问题:
使用下面的模式
使用(DbContext context = new DBContext()) { context.Connection.Open(); //所有EF代码都在这里。 context.Connection.Close(); }
从数据库更新模型并重新创建所有新鲜的函数导入。
如果您需要任何其他信息,请与我们联系。任何帮助将非常感谢。