當連接到SQL-Server時,我的程序執行掛起.Open()方法超過指定的2秒超時。IDbConnection打開掛起C#
當數據庫處於打開狀態的機器處於脫機狀態或重新啓動時,我設法重現該問題。當數據庫處於打開狀態的機器啓動時,程序的執行不會掛起。
如何強制拋出異常或2秒超時超時?
我試過OleDB和SqlConnection提供者,沒有什麼區別。
我可以ping本機連接到它之前,但仍有區分,平安一定會成功(假設機器關機前1秒),然後打開連接掛...下面提供
示例代碼。
public static IDbConnection GetConnection(IDbConnection connection)
{
connection.ConnectionString = "connectionString; Connection Timeout=2;";
connection.Open();
return connection;
}
連接超時屬性只是創建連接的時間,之後的所有事情(連接建立後還有很多事情)不會_count_並且可能無限期地(除非有_another_ timeout我是不知道)。你可以做的是在帶有_watchdog_的單獨線程中執行你自己的代碼,以將總時間執行限制爲2秒(注意對於TCP連接,2秒是非常短的時間)。 –