未在GetRouteData(System.Web.Routing)中设置对象引用

时间:2009-05-20 15:47:28

标签: iis-6 routing module httpcontext

这让我很生气。我已经在Web窗体应用程序上实现了Web.Routing。该应用程序工作正常,然后莫名其妙地(至少在目前)抛出以下错误消息:

  

对象引用未设置为   对象的实例。在   System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase   httpContext)   System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase   上下文)   System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(对象   发件人,EventArgs e)at   System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()   在   System.Web.HttpApplication.ExecuteStep(IExecutionStep   步,布尔& completedSynchronously)

此错误是间歇性的,并且站点周围没有任何导航会重新创建错误。

我对错误的解释是对服务器的请求导致带有空httpContext的PostResolveRequestCache事件,但我不确定这是怎么回事。

通过重新启动应用程序池解决了该问题。

应用程序正在IIS6上运行,因此,我已经添加了一个Wildcard应用程序映射到aspnet_isapi.dll并且未选中“验证该文件存在”。这是为了启用没有文件扩展名的友好网址,但我正在考虑将其更改为可能的解决方法。这背后的想法是,可能有一个请求被发送到服务器,正在接收不应该的模块。

我的实施已经过定制,但遵循哈克先生制定的一般准则。由于错误的性质,我不确定我的任何代码是否会提供很多见解,但我显然愿意这样做。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:1)

添加自定义文件扩展名并不理想,但却阻止了进一步的错误消息。

答案 1 :(得分:1)

可能与正在修改的路径集合相关。请参阅other question

答案 2 :(得分:0)

该错误与.Net中的线程安全集合一致。

请在similar question

上查看我的最后一个答案