之前也吃過 STATIC 這東西的虧...
和文中狀況不一樣的是程式並不會造成任何錯誤,
不會有錯誤訊息,
但是不同台電腦進行操作卻有機會看到相同的結果,
就一個有權限的系統而言這是相當危險的,
因為客戶有可能會看到不開看到的機密資料...。
慎用啊~
這邊引用文中的一段觀念:
"首先有個很重要的觀念需要說明,若你在 ASP.NET 中使用靜態欄位 (static field) 的話,這個靜態欄位物件會一直留存在 ASP.NET 的應用程式中 (HttpApplication),也就是說當 ASP.NET 頁面處理完成之後,該物件還是一樣存在 HttpApplication 中,並且所有 HTTP Request 都會共用這個靜態欄位變數,所以只要網站流量變多的時候就很有可能會發生資源衝突的情況,導致 TableAdapter 在進行資料處理的時候因為只共用一條連線,而造成連線狀態彼此衝突而混亂的情況。"
參考頁面:http://blog.miniasp.com/post/2008/07/29/Careful-using-static-field-in-ASPNET.aspx
沒有留言:
張貼留言