當有全局變數時,如:protected static Dictionary<string, string> SalesMail = new Dictionary<string, string>(); 每天運行程式時,會使用到這個變數,比如:往這個變數中添加數據。如果服務不停止或重新啟動,這個變數會存 ...
當有全局變數時,如:protected static Dictionary<string, string> SalesMail = new Dictionary<string, string>();
每天運行程式時,會使用到這個變數,比如:往這個變數中添加數據。如果服務不停止或重新啟動,這個變數會存在所記錄的數據。
我遇到的問題是每天凌晨發送合同到期的提醒郵件,每天都會訪問數據,對這些數據篩選,然後把續約發送郵件的郵箱放在SalesMail 變數里,數據篩選結束再發送郵件。所以出現昨天或更早時間的郵件,就是因為服務沒有停止,這個變數就一直存在引用,它裡面的數據也不清空。我們普通狀態下,當方法調用這個變數就相當於重新實例化這個變數,當方法執行後這個變數就會回收。但服務不是這樣,它一直存在,不回收。