2

我们正在构建一个应用程序,它每周都会同时对数据库发出大量请求。

我们有大约 15-20 个线程同时查询数据库。

我们实际上遇到了很多问题:

在数据库方面(内存不足):正在解决。

但在客户端也是如此。尝试获取连接或执行命令时出现异常。这些命令是通过实体框架制作的。

该应用程序有两部分:一个网站和一个控制台应用程序。

那么谁能告诉我如何增加以下值?

  • 连接超时
  • 命令超时
  • 连接池大小

我认为有几件事必须在服务器端(SQL Server 或 IIS)完成,但我找不到在哪里?

4

2 回答 2

3

命令超时可以在ObjectContext实例上设置。连接超时和连接池大小在连接字符串中配置,但如果您只有 15-20 个线程,您的问题很可能出在其他地方,因为默认连接池大小为 100。

于 2012-11-21T13:58:18.743 回答
2

将您的 objectContext 包含在 using 块中,以便在您完成工作后释放上下文。

您可以创建一个方法来传递线程,该线程使用您的实体上下文来完成您想要的工作,然后在工作完成后处理连接,您可以使用 stateinfo 对象变量传递不同的参数以在您的生命周期中使用方法。

void DoContextWork(object stateInfo)
    {

    // wrap your context in a using clause
    using(var objectContext = new YourEntity()
       {
           // Do work here
       }

    }

您可以让多个线程调用此方法,并且每次调用连接时,您都可以在数据库上进行工作,而不会遇到上述问题。

于 2013-02-14T12:18:28.027 回答