这让我发疯了。我已经在Web应用程序上实现了Web.Routing。应用程序工作正常,然后莫名其妙地抛出以下错误消息(至少目前如此):
对象引用未设置为对象的实例。( System.Web.Routing.RouteCollection.GetRouteData(HttpContextBase httpContext)在System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase上下文中))在System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(Object发件人( EventArgs e)在System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step (布尔& completedSynchronously)
此错误是断断续续的,在站点周围进行任何导航都不会重新创建该错误。
我对此错误的解释是,对服务器的请求将导致一个带有空httpContext的httpContext事件,但我不确定这是怎么可能的。
通过重新启动应用程序池解决了这个问题。
应用程序在IIS6上运行,因此,我在aspnet_isapi.dll中添加了一个通配符应用程序映射,未选中“验证文件存在”。这是为了启用没有文件扩展名的友好urls,不过,我正在考虑将其更改为可能的工作。这背后的想法是,可能有一个请求被发送到服务器,而这个请求被取走了不应该被接收的模块。
我的实施是定制的,但遵循了哈克先生制定的一般指导方针。由于错误的性质,我不确定我的任何代码是否会提供更多的洞察力,但我显然愿意根据请求这样做。
任何帮助都将不胜感激。
发布于 2009-06-14 17:46:28
添加自定义文件扩展名并不理想,但防止了进一步的错误消息。
发布于 2009-12-14 06:45:52
可能与正在修改的路由集合有关。见other question。
发布于 2014-04-09 12:05:26
该错误与.Net中不安全的集合是一致的。
请查查我在这个similar question上的最后一个答案
https://stackoverflow.com/questions/888747
复制相似问题