2010-10-29 147 views
6

我需要知道的避免连接超时最佳实践使用LINQ从数据访问层或多层返回IQueryable<T>特别是当在.NET应用程序SQL时。最佳实践SQL

我得到“超时过期。之前从池中获取连接超时时间已过。出现这种情况可能是因为所有池的连接正在使用,并且达到最大池大小。”测试我的asp.net应用程序进行webstress测试时出错 ?

回答

7

http://www.geekscrapbook.com/2010/08/13/connection-timeout-using-linq-datacontext/

链接将解释究竟会使用LINQ to SQl.You可以手动增加查询执行time.By拖欠其30秒是Timeouut的原因。 根据到Visual Studio 2008转到

工具 - >数据库工具 - >查询&视图 设计

在这里,你会得到增加执行时间的选项。 希望它可以帮助你。

好运

+1

谢谢Prateek,其实问题是,如果你从你的数据访问层(DAL)返回的IQueryable 你可以使用语句这似乎数据上下文 – DSharper 2010-10-29 08:01:49

4

你需要增加你的DataContext对象的CommandTimeout属性值(默认值是30秒),它以秒为单位,例如:

VAR myDataContext =新MyDbDataContext(myConnectionString) { 的CommandTimeout = 120 }; VAR行= myDataContext.sp_Agent__Select(的agentId);

+2

无法使用做一个更好的解决方案,因为你不想为每个创建的项目设定时间 – 2012-10-11 17:33:20

1

实际上,您可能想检查服务器是否确实启动。我就遇到了这个问题 - 原来我忘了停止它的维修后,重新启动MSSQL服务。

基本小白的错误,但我带来星期头痛