2012年11月18日 星期日

[C#]謹慎使用static欄位

之前也吃過 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

沒有留言:

張貼留言