c# – 使用授权属性时出现NullReferenceException

前端之家收集整理的这篇文章主要介绍了c# – 使用授权属性时出现NullReferenceException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我在HomeController上有[Authorize]属性,每当我尝试访问它时,它都会抛出NullReferenceException

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

这是Stack Trace:

[NullReferenceException: Object reference not set to an instance of an
object.]
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 filters,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方法代码时,似乎AuthorizeCore抛出了NullReferenceException,因为它获取了一个NULL HttpContextBase.

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

编辑2:

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

解决方法

问题更糟糕HttpContext甚至在Controller和Razor视图中都没有.所以,我使用aspnet_regiis -ir重新安装ASP.NET v4.0.然后使用在注册期间创建的ASP.NET 4.0池而不是使用DefaultAppPool.

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

猜你在找的C#相关文章