簡體   English   中英

與MySQL和ASP.NET MVC合並

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM