問題一:多線程下擷取檔案絕對路徑
當我們使用httpcontext.current.server.mappath(strpath)擷取絕對路徑時httpcontext.current為null,解決辦法如下:
問題二:多線程下擷取緩存問題
多線程下使用httpcontext.current.cache.get(key)擷取緩存時httpcontext.current為null,解決辦法如下:
httpruntime.cache.get(key);
從msdn上的解釋可以看出,httpruntime.cache是應用程式級别的,而httpcontext.current.cache是針對目前web上下文定義的。
然而,實際上,這二個都是調用的同一個對象,不同的是:httpruntime下的除了web中可以使用外,非web程式也可以使用。
而httpcontext則隻能用在web中。是以,在可能的情況下,我們盡可能使用httpruntime(然而,在不同應用程式之間如何調用也是一個問題)。
問題三:多線程下使用html轉碼問題
多線程下使用httpcontext.current.server.htmlencode(htmlstring)轉碼httpcontext.current為null,解決辦法如下:
httputility.htmlencode(htmlstring)
總之,httpcontext不是萬能的,當多線程調用,或是用機器模拟調用時,此時是沒有httpcontext上下文的。
詳細講解可以看下這篇文章 http://www.cnblogs.com/fish-li/archive/2011/08/21/2148640.html#_label4