![](/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.