欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
博客園 - The shortest answer is doing - Asp.net地址轉義(分析)加強版--Dottext的地址分析模塊的不足之處及相應的解決方案

(地址轉義:指像http://thinhunan.cnblogs.com/這樣的地址,被轉義成http://www.cnblogs.com/default.aspx頁(yè)面處理,default.aspx頁(yè)面在URL中獲得參數:BlogName = thinhunan。)

Dottext博客程序用IHttpHandler myhandler= PageParser.GetCompiledPageInstance (url,pagepath,context)來(lái)進(jìn)行地址轉義,這個(gè)方法返回的IHttpHandler的屬性IsReusable有時(shí)會(huì )等于True,就是說(shuō)返回的Handler會(huì )被Cache,我們在做Dottext的擴展時(shí)(如二級域名),這個(gè)機制不會(huì )出現什么問(wèn)題,這是因為其實(shí)Dottext中很多種的URL都是最終給一個(gè)頁(yè)面來(lái)處理,那就是能動(dòng)態(tài)加載Control完成各種變化的Default.aspx頁(yè)面,但如果有以下情況,問(wèn)題就出來(lái)了:
1、http://thinhunan.sjjjyz.com/bloghttp://www.sjjyz.com/blog 要由不同的aspx文件,也就是不同的類(lèi)來(lái)處理時(shí)
2、http://thinhunan.sjjyz.com/blog/2005/10/27/234.html 和 http://thinhunan.sjjyz.com/blog/2005/10/27/234.html?comment=1 要由不同的類(lèi)來(lái)處理時(shí)
3、同是http://thinhunan.sjjjyz.com/blog ,但要根據客戶(hù)端是IE還是手機由不同的類(lèi)處理時(shí)

問(wèn)題就出來(lái)了,因為Caching在緩存IHttpHandler時(shí),Key根據的是Request的Path(或者FilePath)信息,就是說(shuō),不管是上面的第一種還是第二種情況,IHttpHandler會(huì )錯誤的看成是可以重用緩存中的前一次有細微不同的URL生成的IHttpHandler,而第三種情況,在我們的IHttpHandlerFactory類(lèi)中,判斷客戶(hù)端的動(dòng)作也不會(huì )執行,因為HttpModules會(huì )在HttpHandlers之前進(jìn)行動(dòng)作,而在Machine.config文件中

        <httpModules>
            
<add
                
name="OutputCache"
                type
="System.Web.Caching.OutputCacheModule" />
……        
</httpModules>

Cache是第一個(gè)HttpModule,所以,如果第一次是用戶(hù)用手機訪(fǎng)問(wèn)了你的首頁(yè),那以后用IE來(lái)訪(fǎng)問(wèn)的IE都會(huì )被送上一堆不能解析的WML代碼。

由此可見(jiàn),PageParser.GetCompilePageInstance()方法也許并不能滿(mǎn)足我們的需求。那怎么辦呢?
對System.Web.UI進(jìn)行改進(jìn)和擴展?這是行不通的,因為其中大部分類(lèi)、方法都是internal的,不同Assembly不能訪(fǎng)問(wèn)。

可行的辦法是:其實(shí)System.Web.UI.Page本身繼承了IHttpHandler,而且它本身的IsReusable返回的是false,既然如此,那我們干脆只接用反射返回頁(yè)面實(shí)例就行了,實(shí)現代碼如下:

        private static Assembly _dotTextWebAssembly = null;
        
/// <summary>
        
/// Assembly
        
/// </summary>

        private static Assembly DotTextWebAssembly
        
{
            
get
            
{
                
if(_dotTextWebAssembly == null)
                
{
                    _dotTextWebAssembly 
= (Assembly)HttpRuntime.Cache["WebDllPath"];
                    
if(_dotTextWebAssembly == null)
                    
{
                        AssemblyName an 
= new AssemblyName();
                        an.Name 
= "Dottext.Web";
                        _dotTextWebAssembly 
= AppDomain.CurrentDomain.Load(an);
                        HttpRuntime.Cache.Insert(
"WebDllPath",_dotTextWebAssembly,null,System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromDays(1),System.Web.Caching.CacheItemPriority.NotRemovable,null);
    
                    }

                }

                
                
return _dotTextWebAssembly;
            }

        }

        
private static IHttpHandler GetWapHandlerByPage(string pageName)
        
{
            IHttpHandler waphandler 
= null;
            
//waphandler = (IHttpHandler)HttpRuntime.Cache["WapHandler_"+pageName]; 此處不能用Cache,因為Handler的IsReUsable為false;
            
//if(waphandler == null)
            
//{
                Type type = DotTextWebAssembly.GetType("Dottext.Web."+pageName.Replace(".aspx",""),true,true);
                waphandler 
= (IHttpHandler)System.Activator.CreateInstance(type);
                
//HttpRuntime.Cache.Insert("WapHandler_"+pageName,waphandler,null,System.Web.Caching.Cache.NoAbsoluteExpiration,TimeSpan.FromHours(1),System.Web.Caching.CacheItemPriority.NotRemovable,null);
            
//}
            return waphandler;
        }


-----------------------------------------
原創(chuàng )文章,轉載請注明出處

posted on 2005-11-03 15:55 THIN 閱讀(70) 評論(6)  編輯 收藏 收藏至365Key 所屬分類(lèi): ASP.net

評論:
# re: Asp.net地址轉義加強版 2005-11-03 16:03 | 匿了
哇塞?。?!~~~~~

老大,實(shí)在太帥了!

竟然寫(xiě)出這樣讓人嘆為觀(guān)止的材料~

偶是來(lái)拜老大的!你永遠是偶滴老大!

加油~~

永遠支持你的粉絲...

  
# re: Asp.net地址轉義加強版 2005-11-03 16:05 | 非非.Net
地址轉義? 應該是URL重寫(xiě)
  
# re: Asp.net地址轉義加強版 2005-11-03 16:08 | THIN
URL重寫(xiě)也行,URL重寫(xiě)主要是對應有個(gè)方法
System.Web.HttpContext.Current.RewritePath()中文翻譯剛好是地址重寫(xiě)
  
# re: Asp.net地址轉義加強版 2005-11-03 16:08 | THIN
而且GetCompiledInstance本來(lái)也沒(méi)有重寫(xiě)這個(gè)"動(dòng)作"啊
  
# re: Asp.net地址轉義(分析)加強版--分析Dottext程序中的地址分析和轉義模塊在我們實(shí)際應用中的不足之處以及相應的解決方案 2005-11-03 16:23 | dudu
好方法!
文章題目長(cháng)了點(diǎn), 影響了首頁(yè)的顯示。
  
# re: Asp.net地址轉義(分析)加強版--Dottext的地址分析模塊的不足之處及相應的解決方案 2005-11-03 16:47 | THIN
題目已做刪節,呵呵
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
講解asp.net緩存cache定時(shí)更新數據
主流 Blog 程序
客戶(hù)端圖片緩存
ASP.NET轉義字符
Scott on Writing
ASP.NET 2.0防止同一用戶(hù)同時(shí)登陸
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久