首页 > 代码库 > 关于URLRewriter报错:System.NullReferenceException: 未将对象引用设置到对象的实例 的解决
关于URLRewriter报错:System.NullReferenceException: 未将对象引用设置到对象的实例 的解决
检查网站日期,发现内容如下:
System.NullReferenceException: 未将对象引用设置到对象的实例。 在 URLRewriter.ModuleRewriter.Rewrite(String requestedPath, HttpApplication app) 在 URLRewriter.BaseModuleRewriter.BaseModuleRewriter_AuthorizeRequest(Object sender, EventArgs e) 在 System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
URLRewriter是一个开源的Url重写的东东,当然现在可能用的人少了。
网上找到一篇类似的:http://www.cnblogs.com/notus/archive/2007/07/04/710493.html,不过貌似他的问题是在应用层去解决的。
所以看还是看了下URLRewriter的源码。
修改如下,上代码,不说话。
+ View Code?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public static RewriterConfiguration GetConfig() { //old //if (HttpContext.Current.Cache["RewriterConfig"] == null) // HttpContext.Current.Cache.Insert("RewriterConfig", ConfigurationSettings.GetConfig("RewriterConfig")); //return (RewriterConfiguration) HttpContext.Current.Cache["RewriterConfig"]; //第一次改动:以为被GC回收了,加个引用。发现还是有错,想当然了。 //var tmp=HttpContext.Current.Cache["RewriterConfig"]; //if (tmp == null) //{ // HttpContext.Current.Cache.Insert("RewriterConfig", ConfigurationSettings.GetConfig("RewriterConfig")); // tmp = (RewriterConfiguration)HttpContext.Current.Cache["RewriterConfig"]; //} //return (RewriterConfiguration)tmp; //第二次改动 if (HttpContext.Current.Cache[ "RewriterConfig" ] == null ) HttpContext.Current.Cache.Insert( "RewriterConfig" , ConfigurationSettings.GetConfig( "RewriterConfig" ), null ,DateTime.MaxValue,Cache.NoSlidingExpiration); return (RewriterConfiguration)HttpContext.Current.Cache[ "RewriterConfig" ]; } |
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。