URLRewriter错误,在网上搜了半天都找不到答案,大家帮我看看

bizhan 2007-07-02 08:36:35
这个错误是偶尔发生,发生之后一刷新又可以进入网页了。下面是错误信息:

未将对象引用设置到对象的实例。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.NullReferenceException: 未将对象引用设置到对象的实例。

源错误:

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪:

[NullReferenceException: 未将对象引用设置到对象的实例。]
URLRewriter.ModuleRewriter.Rewrite(String requestedPath, HttpApplication app) +110
URLRewriter.BaseModuleRewriter.BaseModuleRewriter_AuthorizeRequest(Object sender, EventArgs e) +101
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +138
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +65
...全文
462 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
tj7417188 2011-12-28
  • 打赏
  • 举报
回复
我也碰到了这个问题,楼主解决了吗?求救!!!
mngzilin 2009-12-30
  • 打赏
  • 举报
回复
这样看不出问题,如果不是自己写的url重写dll,用别人的话,错误很常见
bizhan 2007-07-04
  • 打赏
  • 举报
回复
搜到一个帖子和我的问题一样,但是,没有给出解决方法:

“System.NullReferenceException: 未将对象引用设置到对象的实例” 出错,请帮忙解决,谢谢!
所属分类:.NET技术 ASP.NET
----------------------------------------------------------------------

采用网址重写和数据缓存,平台windows 2003,asp.net 2.0 ,此问题不涉及到数据库。

有的重写的网页,有时(很少)出现问题,出错(出错信息如下),但是刷新以后就好使了,为什么。

是重写的事情还是缓存的问题?

谢谢大家帮忙!

下面是出错的详细信息。
---------------------------------------------------------------------------------------
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)


----------------------------------------------------------------------

大部分是缓存的问题,因为出错的时候有些数据没有同步,所以程序找不到这些数据或者变量,于是就报这个错.

--------------------------------------------------------

麻烦说得详细点,应该怎么才能判断出哪里出错。
应该怎么办,来解决这个问题。

--------------------------------------------------------

一般BS页面在重置URL时,会丢失状态信息。
你给得信息太少了,看不去到底是哪个变量被丢失了。
建议你单布跟踪一下。

--------------------------------------------------------

不明白 帮顶

--------------------------------------------------------

跟踪一下

--------------------------------------------------------

顶一下

--------------------------------------------------------

比较难跟踪
通常网页能够显示,只是偶尔不能显示,应该怎么跟踪。

谢谢!
bizhan 2007-07-04
  • 打赏
  • 举报
回复
用了的呀。上面已经贴了出来了。郁闷
banner91 2007-07-04
  • 打赏
  • 举报
回复
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<configSections>
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter"/>
</configSections>
<connectionStrings>

这个有用嘛?
bizhan 2007-07-04
  • 打赏
  • 举报
回复
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
bizhan 2007-07-04
  • 打赏
  • 举报
回复
感觉这个应该没问题的
bizhan 2007-07-04
  • 打赏
  • 举报
回复
<RewriterConfig>
<Rules>
<RewriterRule>
<LookFor>~/BBS/(\d+)/(\d+)\.html</LookFor>
<SendTo>~/BBS/BrowsePost.aspx?smallid=$1&postid=$2</SendTo>
</RewriterRule>

<RewriterRule>
<LookFor>~/BBS/(\d+)\.html</LookFor>
<SendTo>~/BBS/PostList.aspx?smallid=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/BBS/SendPost-(\d+)\.html</LookFor>
<SendTo>~/BBS/SendPost.aspx?smallid=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/articles/(\d+)\.html</LookFor>
<SendTo>~/site_browsearticle.aspx?articleid=$1</SendTo>
</RewriterRule>
<RewriterRule>
<LookFor>~/doctors/(\d+)\.html</LookFor>
<SendTo>~/site_browsedoctor.aspx?doctorid=$1</SendTo>
</RewriterRule>
</Rules>
</RewriterConfig>

<httpModules>
<add name="ScriptModule" type="Microsoft.Web.Services.ScriptModule"/>
<add name="BridgeModule" type="Microsoft.Web.Services.BridgeModule"/>
<add name="WebResourceCompression" type="Microsoft.Web.Services.WebResourceCompressionModule"/>
<add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
</httpModules>
banner91 2007-07-04
  • 打赏
  • 举报
回复
贴一下你WEB.CONFIG看看
bizhan 2007-07-04
  • 打赏
  • 举报
回复
是下载的微软的那个啊,也没有自己写程序,可是出现了上面的问题,时有是无,好郁闷
banner91 2007-07-04
  • 打赏
  • 举报
回复
根本就不用自己写程序,把微软那个下载下来,应用一下,再调整一下WEB.CONFIG就可以用了
chenchongguo 2007-07-04
  • 打赏
  • 举报
回复
不知道,我从来没有遇到过这种问题用这个控件的时候
bizhan 2007-07-04
  • 打赏
  • 举报
回复
有人说是因为缓存失效引起的。请问大家,如何不让缓存失效?在web.config里面可以配置吗?
bizhan 2007-07-04
  • 打赏
  • 举报
回复
楼上兄弟,我看了。确实没有判断是否为NULL的。该如何解决?难道可以去掉吗?

protected override void Rewrite(string requestedPath, System.Web.HttpApplication app)
{
// log information to the Trace object.
app.Context.Trace.Write("ModuleRewriter", "Entering ModuleRewriter");

// get the configuration rules
RewriterRuleCollection rules = RewriterConfiguration.GetConfig().Rules;

// iterate through each rule...
for(int i = 0; i < rules.Count; i++)
{
// get the pattern to look for, and Resolve the Url (convert ~ into the appropriate directory)
string lookFor = "^" + RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, rules[i].LookFor) + "$";

// Create a regex (note that IgnoreCase is set...)
Regex re = new Regex(lookFor, RegexOptions.IgnoreCase);

// See if a match is found
if (re.IsMatch(requestedPath))
{
// match found - do any replacement needed
string sendToUrl = RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, re.Replace(requestedPath, rules[i].SendTo));

// log rewriting information to the Trace object
app.Context.Trace.Write("ModuleRewriter", "Rewriting URL to " + sendToUrl);

// Rewrite the URL
RewriterUtils.RewriteUrl(app.Context, sendToUrl);
break; // exit the for loop
}
}

// Log information to the Trace object
app.Context.Trace.Write("ModuleRewriter", "Exiting ModuleRewriter");
}
zgmiao 2007-07-04
  • 打赏
  • 举报
回复
你下载的安装版中有这个源码,看一下这一行使用的对象
是不是没有判断是否为Null
bizhan 2007-07-04
  • 打赏
  • 举报
回复
郁闷,这个问题一直困扰着我。

楼上的兄弟,就是URL重写呀。没有代码的,只是配置一下而已。难道大家都没有用过URL重写吗?
quanquanli 2007-07-03
  • 打赏
  • 举报
回复
把你的相关的代码发出来
chuxue1342 2007-07-03
  • 打赏
  • 举报
回复
看不出什么问题!!!
lyfeixue 2007-07-03
  • 打赏
  • 举报
回复
还没开始使用
帮顶
bizhan 2007-07-02
  • 打赏
  • 举报
回复
晕,没人理偶吗?:(

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧