多个Ajax请求共享一个数据库连接(C#)

多个Ajax请求共享一个数据库连接(C#),c#,ajax,database,datareader,C#,Ajax,Database,Datareader,我有一个页面,在启动时发出两个Ajax请求(我知道它们应该合并,但我感兴趣的是正确的解决方案是什么),它们分别向WebAPI控制器发出请求,以获取通过JSON返回的数据 单独来说,它们工作得很好,但同时触发两个Ajax请求会导致著名的“已经有一个与此命令相关联的开放数据读取器”错误 这似乎是因为我在Application\u Start中设置了一个数据库连接,并将该连接用于所有控制器。如果我在每个控制器中创建一个新连接,它可以正常工作 所以我的问题是,在每个控制器中创建一个新的数据库连接是否正确

我有一个页面,在启动时发出两个Ajax请求(我知道它们应该合并,但我感兴趣的是正确的解决方案是什么),它们分别向WebAPI控制器发出请求,以获取通过JSON返回的数据

单独来说,它们工作得很好,但同时触发两个Ajax请求会导致著名的“已经有一个与此命令相关联的开放数据读取器”错误

这似乎是因为我在
Application\u Start
中设置了一个数据库连接,并将该连接用于所有控制器。如果我在每个控制器中创建一个新连接,它可以正常工作


所以我的问题是,在每个控制器中创建一个新的数据库连接是否正确,或者是否有锁定/共享单个连接的选项

不要跨应用程序使用单一连接


尽可能晚地创建和打开数据库连接,并尽可能早地关闭。这应该是规则

关于WebAPI,您应该在每次请求时打开连接,获取数据,关闭连接并将数据返回给客户端。让ADO.Net连接池处理您的连接

见: