在我正在制作的应用程序中,我收到此错误:
错误连接:超时已过期。 超时时间过去之前 从池中获取连接。 这可能是因为所有 汇集连接正在使用中,最大值 达到了游泳池的大小。
显然我在触摸连接池中的max-count。我尽职尽责地使用'using'和所有连接对象,并在功能完成后立即释放它们。
这是在C#上,我使用的是MySql Data Dll。
MySql的dotnet连接器有问题吗?有解决方法吗?
答案 0 :(得分:1)
首先要检查一些事项:
您是否确认您的应用程序没有尝试同时使用多于连接池允许的数量的连接? 如果您在使用连接时正在进行的操作寿命很长(无论如何都要避免),这很容易发生。
您是否正在传递DataReader,而不是在完成后正确处理它。这可能会保持连接。
作为权宜之计,您可以尝试在连接字符串中设置'pooling = false',但这会降低性能。
有关使用连接池的更多信息,请参阅Using Connector/NET with Connection Pooling