![](/img/trans.png)
[英]ASP.NET MVC 5: App Pool, Windows Authentication and Active Directory
[英]Pool with MySQL and ASP.NET MVC
我正在使用ASP.NET和MySQL开发Web应用程序,但是我没有使用SqlClient提供程序。
我读过某处(我不记得在哪里),如果我需要建立连接池,则需要在文件web.config
添加一些行。
为了建立连接,每个模型中都定义了一个连接字符串,例如:
string sqlConnection =
"server=localhost; user id=root; password=***; database=test; pooling=true;Min Pool Size=0; Max Pool Size=60;";
要进行连接并进行查询,请执行以下操作:
MySqlConnection conection;
conection = new MySqlConnection(sqlConnection);
string query = "SELECT COUNT(*) FROM documents WHERE user_id = ?user_id;
MySqlCommand cmd = new MySqlCommand(query, conection);`
cmd.Connection.Open();
cmd.Prepare();
cmd.Parameters.Add("?user_id", userID);
cmd.ExecuteReader();
...
cmd.Connection.Close();
但是我想打开一个连接池并使用池化的连接,我不想每次都打开和关闭一个连接。
我把它放在web.config
文件中:
<connectionStrings>
<remove name="LocalMySqlServer"/>
<add name="LocalMySqlServer"
connectionString="Data Source=localhost; userid=root; password=***; database=test; Pooling=true; Min Pool Size=50; Max Pool Size=100;"
providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
但是,当我启动开发服务器时,在MySQL Workbench中看不到任何连接。
这仅在我调用模型并打开连接时发生。
在启动时如何建立连接池?
我认为您误解了连接池的概念。
连接池是数据库驱动程序或提供程序提供的一种机制。 您仍然需要请求连接,但是驱动程序/提供程序无需在每次创建连接时都创建一个全新的连接,而是维护一个现成的预热对象池,并让您将其中的一个交给您。
这一切都在幕后悄悄进行。
更新:
要使用web.config
的连接字符串:
string sqlConnection =
ConfigurationManager.ConnectionStrings["LocalMySqlServer"].ConnectionString;
您可能必须添加对System.Configuration
的引用:
并添加:
using System.Configuration;
在类文件的顶部。
那是一个.NET 4.0项目,但是原理与.NET 2.0相同。
您可以尝试将“最小池大小” = 0更改为更大的值。 这应确保池中始终有X个连接可用。
尝试:
System.Configuration.ConfigurationManager.ConnectionStrings["LocalMySqlServer"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.