看了二十四画生的文章才发现ASP.NET Portal Starter Kit中调整顺序的一个Bug

public void SaveSiteSettings() 

    
// 原来的:从Cache中获取站点设置信息数据集(好像是个Bug,因为每次更新数据是更新的HttpContext.Current.Items中的) 
    
//SiteConfiguration siteSettings = (SiteConfiguration) HttpContext.Current.Cache["SiteSettings"]; 
    
// 修改后的 
    SiteConfiguration siteSettings = (SiteConfiguration) HttpContext.Current.Items["SiteSettings"]; 
 
    
// 如果Cache中没有,则重新构建 
    if(siteSettings == null
    

        
// If SaveSiteSettings() is called once, the cache is cleared.  If it is 
        
// then called again before Global.Application_BeginRequest is called,  
        
// which reloads the cache, the siteSettings object will be Null  
        
// (这一句不知翻译的对不对,好像很重要)如果SaveSiteSettings()被调用过一次后,Cache就回被清除。如果它再一次被调用在Global.Application_BeginRequest前siteSettings为null则重新写Cache 
        siteSettings = GetSiteSettings(); 
    }
 
    
string configFile = HttpContext.Current.Server.MapPath(ConfigurationSettings.AppSettings["configFile"]); 
 
    
// Object is evicted from the Cache here.   
    
// 将变更后的数据集写入到Xml文件 
    siteSettings.WriteXml(configFile); 
}
 

说起来挺气人的,微软放了这么久的东西这么明显一个bug都不改过来。前几个星期抽了时间把portal排序的主要的一些代码提出来看看,编译后执行程序,要么点了后不动,要么就是ModuleOrder的顺序重复,还以为是自己的问题,放了几个星期了,今天偶然回来博客园看看,发现二十四花生的一篇文章http://www.cnblogs.com/esshs/archive/2005/04/18/139829.html提及到这个Bug.上面是其中一段需要修改的地方。改了基本就正常了。觉得不爽。

posted on 2005-08-30 20:20  Neo0820  阅读(530)  评论(0编辑  收藏  举报

导航