【问题标题】:best practice for avoid connection timeout when using LINQ to SQL使用 LINQ to SQL 时避免连接超时的最佳实践
【发布时间】:2010-10-29 04:27:36
【问题描述】:

我需要了解在 .net 应用程序中使用 LINQ to SQL 时避免连接超时的最佳做法,特别是在从数据访问层或层返回 IQueryable<T> 时。

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

【问题讨论】:

    标签: c# .net linq-to-sql


    【解决方案1】:

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

    链接将向您解释使用 LINQ to SQl 超时的原因。您可以手动增加查询执行时间。默认为 30 秒。 根据 Visual Studio 2008 转到

    工具->数据库工具->查询和查看 设计

    在这里您可以选择增加执行时间。 希望对你有帮助。

    祝你好运

    【讨论】:

    • 感谢 Prateek,实际上问题是,如果您从数据访问层 (DAL) 返回 IQueryable,则不能将 using 语句用于数据上下文
    【解决方案2】:

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

    var myDataContext = new MyDbDataContext(myConnectionString) { 命令超时 = 120 }; var rows = myDataContext.sp_Agent__Select(agentId);

    【讨论】:

    • 这似乎是一个更好的解决方案,因为您不必为创建的每个项目设置超时
    【解决方案3】:

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

    基本的菜鸟错误,但让我头痛了一个星期

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      • 2012-04-15
      相关资源
      最近更新 更多