使用授权属性时出现NullReferenceException

Cha*_*ngh 7 c# asp.net-mvc-3

我有[Authorize]属性HomeController,每当我试图访问它时,它会抛出一个NullReferenceException

这真的很奇怪,因为我[Authorize]之前已经使用了很多次而且工作得很好.在这种情况下,唯一的区别是此应用程序使用Windows 7和IIS 7.5托管在我们自己的Web服务器上

这是Stack Trace:

[NullReferenceException:对象引用未设置为对象的实例.]
System.Web.Mvc.AuthorizeAttribute.AuthorizeCore(HttpContextBase httpContext)+38
System.Web.Mvc.AuthorizeAttribute.OnAuthorization(AuthorizationContext filterContext)+160
System.Web.Mvc .ControllerActionInvoker.InvokeAuthorizationFilters(ControllerContext controllerContext,IList`1过滤器,ActionDescriptor actionDescriptor)+155
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+784976
System.Web.Mvc.Controller.ExecuteCore()+ 159
System .Web.Mvc.ControllerBase.Execute(RequestContext requestContext)+335 System.Web.Mvc.<> c_ DisplayClassb.b _5 ()+ 62 System.Web.Mvc.Async
.<> c_ DisplayClass1.b _0()+ 20
System.Web.Mvc.<> c_ DisplayClasse.b _d()+54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+ 453 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously) +371

编辑:

在查看AuthorizeCore方法代码时,似乎AuthorizeCoreNullReferenceException因为它获取NULL 而抛出HttpContextBase.

有可能吗?因为应用程序中的其他所有工作都很好,比如访问数据库,创建auth cookie等.

编辑2:

只有在将其发布到Web Server后才会发生这种情况.在开发过程中,它在Visual Studio中运行得非常好.

Cha*_*ngh 4

更糟糕的是,HttpContext在 Controller 和 Razor 视图中甚至不可用。因此,我使用aspnet_regiis -ir. 然后使用ASP.NET 4.0注册期间创建的池而不是使用DefaultAppPool.

它开始工作正常。它还解决了我<modules runAllManagedModulesForAllRequests="true"/>的应用程序 web.config 中的另一个问题。