【发布时间】:2011-11-01 20:29:02
【问题描述】:
我在HomeController 上有[Authorize] 属性,每当我尝试访问它时,它都会抛出NullReferenceException
这真的有点奇怪,因为我以前用过[Authorize] 很多次,而且效果很好。在这种情况下,唯一的区别是此应用程序托管在 我们自己的使用 Windows 7 和 IIS 7.5 的 Web 服务器上
这是堆栈跟踪:
[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 步骤, 布尔和完成同步)+371
编辑:
在查看AuthorizeCore 方法的代码时,似乎AuthorizeCore 正在抛出NullReferenceException,因为它得到了一个NULL HttpContextBase。
这可能吗?因为应用程序中的其他一切都运行良好,例如访问数据库、创建身份验证 cookie 等。
编辑 2:
这仅在发布到 Web 服务器后才会发生。在开发过程中,它在 Visual Studio 中运行良好。
【问题讨论】:
-
我收到了这个异常,因为 cookie 无效。如果您也遇到这种情况,请尝试在浏览器中打开开发人员工具,转到“资源”选项卡或类似选项,然后删除与该站点相关的所有 cookie。当您重新加载页面时,它可能会起作用。 :-)
标签: c# asp.net-mvc-3