У меня есть атрибут [Authorize]
на HomeController
, всякий раз, когда я пытаюсь получить к нему доступ, он выдает NullReferenceException
Это действительно странно, потому что я уже много раз использовал [Authorize]
, и он отлично работает. Единственная разница в этом случае заключается в том, что это приложение размещено на нашем собственном веб-сервере с использованием Windows 7 и IIS 7.5.
Вот трассировка стека:
[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, String784976Name) + > System.Web.Mvc.Controller.ExecuteCore () +159
System.Web.Mvc.ControllerBase.Execute (RequestContext requestContext) +335 System.Web.Mvc. ‹> C_ DisplayClassb.b em > _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.HttpAppli cation.ExecuteStep (шаг IExecutionStep, логический и завершенный синхронно) +371
Изменить:
Изучая код метода AuthorizeCore
, кажется, что AuthorizeCore
выбрасывает NullReferenceException
, потому что получает NULL HttpContextBase
.
Возможно ли такое? Потому что все остальное в приложении работает нормально, например, доступ к базе данных, создание cookie аутентификации и т. Д.
Изменить 2:
Это происходит только после публикации на веб-сервере. Во время разработки он отлично работает с Visual Studio.