僅說兩點,實現看得蛋疼,說一下。因為出現在首頁,所以就有此文。
摘錄一段微博,盡量避免在技術理解錯方向性問題:真不是微軟問題,是你的理解問題。
“清晰的思路遠比埋頭苦乾重要,正確的方向要比勤勤懇懇重要,做對的事情也比把事情做對重要。
常常在評價人、事時,去評價那些表面的現象,忽略了內涵。
最終,導致哪些真正有價值的人和事情被冷落了,而那些金玉其外敗絮其中的東西被吹捧了出來!”
一、沒有理解什麼叫多線程,所以下述的結論都是錯的
*****************************
在以下情形中訪問HttpContext.Current將會返回null
1. 定時器的回調。
2. Cache的移除通知。
3. APM模式下非同步完成回調。
4. 主動建立線程或者將任務交給線程池來執行。
*************************************
正確應是:在以下情形中,HttpContext.Current為null,不是坑,原本就如此
二、基本概念都沒搞清
*****************************
QueryString,Form允許重複的KEY????
不是這樣表達的吧?
字典類能允許重複的KEY,請求串中的參數名能叫Key?
*************************************
正確應是:請求串中允許相同的參數名,其值在QueryString中以“,”分隔表示。
QueryString不會存在重複的KEY。請別誤導大家。
原文:http://www.cnblogs.com/fish-li/archive/2013/05/28/3104750.html
部分摘錄:
ASP.NET的一些坑
閱讀目錄
- 開始
- HttpContext.Current並非無處不在
- Application_Start的異常與IIS傳統模式
- QueryString,Form允許重複的KEY
- ashx的重用問題
- 當前登入使用者資訊有時擷取不到
- Timer可能會不起作用
- Session與複雜資料類型
- DateTime的JSON序列化
- 招聘資訊
前段時間碰到一個問題:為什麼在ASP.NET程式中定時器有時候會不工作?
這個問題看起來很奇怪,代碼好像也沒錯,但就是結果與預期不一致。
其實這裡是ASP.NET程式的一個陷阱,我習慣說成坑。 後來想想,其實ASP.NET的坑何止這一個,我今天就把我能想到的各種坑都寫出來,希望大家小心這些問題。
想到我以前的部落格中也零散的說過了一些坑,所以這篇部落格中也把它們列出來了, 不過,對於以前談過的內容,這裡將只會簡略地說明。
回到頂部HttpContext.Current並非無處不在
這個問題是我上個月的部落格中提到的問題, 原文連結:http://www.cnblogs.com/fish-li/archive/2013/04/06/3002940.html
在以下情形中訪問HttpContext.Current將會返回null
1. 定時器的回調。
2. Cache的移除通知。
3. APM模式下非同步完成回調。
4. 主動建立線程或者將任務交給線程池來執行。
所以,在寫類庫時,請注意這個問題。
回到頂部Application_Start的異常與IIS傳統模式
在IIS6或者II7的傳統模式下運行ASP.NET程式時,如果Application_Start事件中拋出了未捕獲異常, 那麼 這個異常將顯示一次。
關於這個問題的更多細節介紹請點擊:http://www.cnblogs.com/fish-li/archive/2013/03/24/2979780.html
回到頂部QueryString,Form允許重複的KEY
我們經常見到的集合,例如:Hashtable, Dictionary,它們都要求KEY是唯一的,然而, HttpRequest的QueryString,Form集合執行個體卻 允許KEY重複,當遇到KEY重複時,通過索引器訪問集合時, 會將KEY對應的所有元素值用逗號拼接起來。
為什麼會這樣,因為這二個集合的類型是NameValueCollection,類似的,Headers集合也是這樣。
由於這個特殊性與我們常見的情形不一致,所以我們需要注意這個差別,當然了,有些時候我們還可以利用這個行為實現一些特殊的需求, 關於這個細節的更多介紹請參考:http://www.cnblogs.com/fish-li/archive/2011/12/06/2278463.html , 在這篇部落格中,還介紹了HttpRequest的二個索引器也是值得我們注意的。
閱讀目錄
- 開始
- HttpContext.Current並非無處不在
- Application_Start的異常與IIS傳統模式
- QueryString,Form允許重複的KEY
- ashx的重用問題
- 當前登入使用者資訊有時擷取不到
- Timer可能會不起作用
- Session與複雜資料類型
- DateTime的JSON序列化
- 招聘資訊
前段時間碰到一個問題:為什麼在ASP.NET程式中定時器有時候會不工作?
這個問題看起來很奇怪,代碼好像也沒錯,但就是結果與預期不一致。
其實這裡是ASP.NET程式的一個陷阱,我習慣說成坑。 後來想想,其實ASP.NET的坑何止這一個,我今天就把我能想到的各種坑都寫出來,希望大家小心這些問題。
想到我以前的部落格中也零散的說過了一些坑,所以這篇部落格中也把它們列出來了, 不過,對於以前談過的內容,這裡將只會簡略地說明。
回到頂部HttpContext.Current並非無處不在
這個問題是我上個月的部落格中提到的問題, 原文連結:http://www.cnblogs.com/fish-li/archive/2013/04/06/3002940.html
在以下情形中訪問HttpContext.Current將會返回null
1. 定時器的回調。
2. Cache的移除通知。
3. APM模式下非同步完成回調。
4. 主動建立線程或者將任務交給線程池來執行。
所以,在寫類庫時,請注意這個問題。
回到頂部Application_Start的異常與IIS傳統模式
在IIS6或者II7的傳統模式下運行ASP.NET程式時,如果Application_Start事件中拋出了未捕獲異常, 那麼 這個異常將顯示一次。
關於這個問題的更多細節介紹請點擊:http://www.cnblogs.com/fish-li/archive/2013/03/24/2979780.html
回到頂部QueryString,Form允許重複的KEY
我們經常見到的集合,例如:Hashtable, Dictionary,它們都要求KEY是唯一的,然而, HttpRequest的QueryString,Form集合執行個體卻 允許KEY重複,當遇到KEY重複時,通過索引器訪問集合時, 會將KEY對應的所有元素值用逗號拼接起來。
為什麼會這樣,因為這二個集合的類型是NameValueCollection,類似的,Headers集合也是這樣。
由於這個特殊性與我們常見的情形不一致,所以我們需要注意這個差別,當然了,有些時候我們還可以利用這個行為實現一些特殊的需求, 關於這個細節的更多介紹請參考:http://www.cnblogs.com/fish-li/archive/2011/12/06/2278463.html , 在這篇部落格中,還介紹了HttpRequest的二個索引器也是值得我們注意的。