我們有單元測試來測試我們的數據庫安裝和卸載功能是否成功。 單元測試使用SqlClient.SqlConnection類來檢查數據庫內容之前,期間和之後。爲什麼sqlConnection.Close()不關閉登錄?
我們的問題是使用後SqlClient.SqlConnection,因爲它聲稱用戶當前登錄卸載的降登錄部分失敗。儘管我們已呼籲了SQLConnection.close(),登錄似乎仍然開放。
我們的代碼看起來有點像這樣:
InstallTables(); // function uses smo to create tables in a database.
string connString = CreateLogin("userName", "password"); // create login with smo
// Test the returned connection string connects to the database
using (SqlConnection con = new SqlConnection(connString))
{
con.Open();
//test code to read the DB version out of a table
//Dispose calls con.Close() - I have also tried calling it explicitly
}
DropTables(); // uses smo to drop tables from the database
DropLogin("userName", "password"); // uses smo to drop the login
的DropLogin失敗,出現以下異常: System.Data.SqlClient.SqlException:無法刪除登錄「engageSecurity_unittest_129418264074692569」作爲用戶在當前登錄
如果我在DropLogin之後刪除所有的SqlConnection代碼,那麼一切運行良好。
有沒有人知道爲什麼用戶沒有註銷時,我打電話給SqlConnection.Close()?
這是關於連接池嗎?
謝謝賈斯汀 - 連接字符串中的Pooling = false做了詭計! – GarethOwen 2011-02-11 07:59:32