局域網內發布後運行一段時間,網站卡死,刷新無效,最終報「連接超時」。
Trace Flag 1222 或查詢 sys.dm_os_waiting_tasks、sys.dm_tran_locks 定位死鎖。SELECT * FROM sys.dm_exec_requests WHERE status='running' AND total_elapsed_time > 30000。using (var conn = new SqlConnection(...)) 確保釋放。Max Pool Size 默認 100,高併發需調大或優化代碼減少佔用時間。await cmd.ExecuteReaderAsync()。Include / 存儲過程批量獲取。
command.CommandTimeout = 60; // 秒
using 模式管理 SqlConnection/SqlCommand/SqlDataReader。SELECT *。SELECT
r.session_id, r.status, r.command, r.cpu_time, r.total_elapsed_time,
r.blocking_session_id, t.text AS sql_text
FROM sys.dm_exec_requests r
CROSS APPLY sys.dm_exec_sql_text(r.sql_handle) t
WHERE r.blocking_session_id > 0 OR r.session_id IN (
SELECT blocking_session_id FROM sys.dm_exec_requests WHERE blocking_session_id > 0
);