微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – MVC中的奇怪异常

非常罕见的我的MVC 3应用程序有以下例外.它只在Release模式下,当它启动时只重启IIS应用程序池有帮助.有没有人可以给我一个可能导致此错误提示

例外情况:

System.NullReferenceException: Object reference not set to an instance of an object.
   at System.Web.Mvc.FilterProviderCollection.<RemoveDuplicates>d__b.MoveNext()
   at System.Linq.Buffer`1..ctor(IEnumerable`1 source)
   at System.Linq.Enumerable.<ReverseIterator>d__a0`1.MoveNext()
   at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at System.Web.Mvc.FilterInfo..ctor(IEnumerable`1 filters)
   at System.Web.Mvc.ControllerActionInvoker.GetFilters(ControllerContext controllerContext,ActionDescriptor actionDescriptor)
   at System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)
   at System.Web.Mvc.Controller.ExecuteCore()
   at System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)
   at System.Web.Mvc.MvcHandler.<>c__displayClass6.<>c__displayClassb.<BeginProcessRequest>b__5()
   at System.Web.Mvc.Async.AsyncResultWrapper.<>c__displayClass1.<MakeVoidDelegate>b__0()
   at System.Web.Mvc.MvcHandler.<>c__displayClasse.<EndProcessRequest>b__d()
   at System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)

解决方法

看起来您没有锁定就修改了GlobalFilters集合.例如,从IHttpModule.Init访问此集合时可能会发生这种情况,IHttpModule.Init是为运行时创建的每个HttpApplication调用的.有这个问题一次.

使用WebActivator或简单地使用Global_asax App_Start来初始化这种全局集合.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐