C# MVC中的奇怪异常

C# MVC中的奇怪异常,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,我的MVC3应用程序很少出现以下异常。它仅处于发布模式,当它启动时,只有重新启动IIS应用程序池才有帮助。有人能告诉我是什么导致了这个错误吗 例外情况是: System.NullReferenceException: Object reference not set to an instance of an object. at System.Web.Mvc.FilterProviderCollection.<RemoveDuplicates>d__b.MoveNext()

我的MVC3应用程序很少出现以下异常。它仅处于发布模式,当它启动时,只有重新启动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)
System.NullReferenceException:对象引用未设置为对象的实例。
在System.Web.Mvc.FilterProviderCollection.d_ub.MoveNext()中
在System.Linq.Buffer`1..ctor处(IEnumerable`1源)
在System.Linq.Enumerable.d_uA0`1.MoveNext()中
在System.Linq.Enumerable.WhereSelectEnumerableInterator`2.MoveNext()中
位于System.Collections.Generic.List`1..ctor(IEnumerable`1集合)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
位于System.Web.Mvc.FilterInfo..ctor(IEnumerable`1过滤器)
位于System.Web.Mvc.ControllerActionInvoker.GetFilters(ControllerContext ControllerContext,ActionDescriptor ActionDescriptor)
位于System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext ControllerContext,String actionName)
在System.Web.Mvc.Controller.ExecuteCore()上
在System.Web.Mvc.ControllerBase.Execute(RequestContext-RequestContext)中
在System.Web.Mvc.MvcHandler.c_uuudisplayClass6.c_uudisplayClassB.b_uu5()中
在System.Web.Mvc.Async.AsyncResultRapper.c__DisplayClass1.b__0()中
在System.Web.Mvc.MvcHandler.c_udisplayClasse.b_ud()中
在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()中
在System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值&同步完成)

看起来您在不锁定的情况下修改了GlobalFilters集合。例如,当您从IHttpModule.Init访问此集合时,可能会发生这种情况,该集合是为运行时创建的每个HttpApplication调用的。我曾经有过这个问题


使用WebActivator或简单的Global_asax App_开始初始化此类全局集合。

@SonerGönül哪一部分?所有解决方案?此异常显示来自asp.net MVC源代码的堆栈跟踪。您是否编写或使用了任何ActionFilters?你知道RemovedUpplicates来自哪里吗?看起来来自自定义筛选器的RemovedUpplicates正在弹出此异常@Fals为什么来自自定义过滤器?移除的副本来自MVC的过滤器ProviderCollectionclass@GarathRemovedUpplicates删除集合中任何重复的筛选器。FilterProviderCollection保存控制器中的每个过滤器,包括所有海关。看起来有什么东西把名单弄乱了。有东西很早就被处理掉了,很快就会弹出这个异常。如果你有一个自定义过滤器,可能是问题!