我們一直試圖在TransactionScope
內使用SqlConnection
。當我們創建了這個網站,並嘗試這個數據庫調用,我們遇到了一個錯誤:在TransactionScope中打開SqlConnection錯誤
A transport-level error has occurred when receiving results from the server. (provider: TCP Provider, error: 0 - An existing connection was forcibly closed by the remote host.)
所涉及的錯誤就行了cnn.Open()
發生。
using (var scope = new TransactionScope())
using (var cnn = new SqlConnection(connectionString))
{
cnn.Open();
int result = cnn.QuerySingle<int>("SELECT 1");
Console.WriteLine(result);
}
我們創建了一個控制檯應用程序來弄清楚什麼是錯的,發現從「假」到「真」改變我們的連接字符串關鍵字「池」允許這在控制檯應用程序運行,併成功返回我們結果。
我們對我們的網站連接字符串進行了相同的更改,與之前返回的錯誤相同。
是否有任何原因,此代碼不起作用?
首先,爲什麼彙集了嗎?其次,這聽起來像池會導致相同的物理連接重複用於多個邏輯連接。這是非確定性的,可以在任何時候中斷。發佈更完整的代碼。可能有多個查詢或多個Open。 – usr
Azure Portal向我們提供的連接字符串中沒有合併池。我們嘗試開啓此功能,並在本地機器上運行,但未部署到我們的網絡應用程序中。當有一個或多個查詢或連接時,它沒有任何區別,它在第一次打開時失敗 – Cassius40k