После перезагрузки: исключение NullReferenceException в System.Web.PipelineStepManager.ResumeSteps - PullRequest
0 голосов
/ 30 апреля 2019

(Почти) каждое утро, после загрузки моего ноутбука, запуска IIS и просмотра определенного веб-приложения mpc asp.net на моем ПК, я получаю следующее исключение:

[NullReferenceException: Object reference not set to an instance of an object.]
   System.Web.PipelineStepManager.ResumeSteps(Exception error) +1781
   System.Web.HttpApplication.BeginProcessRequestNotification(HttpContext context, AsyncCallback cb) +130
   System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +481

После iisreset эторешеноЭто происходит только на моем ноутбуке, а не на сцене или на живом сервере, где работает то же самое приложение asp.net mvc

Я уже проверил:

  • Я не добавил ни одногопользовательские обработчики событий в моем global.asax
  • У меня нет собственных пользовательских HTTPModules.Я использую ImageResizer, но для этого модуля не определены обработчики событий (о которых я знаю и которые можно увидеть в коде).
  • Я попытался переместить код из Application_BeginRequest в конструктор global.Asaxно столкнулся с другой проблемой, потому что в конструкторе у меня еще нет HttpContext.Current.
  • (я знаю, что означает исключение NullReferenceException, поэтому объяснять это не нужно. В этом случае исключение не выдаетсяпо моему собственному коду.)

Я использую пул приложений в интегрированном режиме на .net CLR версии 4.0.30319. Целевой фреймворк .Net 4.5.2

мой глобальный.Asax выглядит так:

public class MvcApplication : HttpApplication {

        protected void Application_Start() {
            AreaRegistration.RegisterAllAreas();
            GlobalConfiguration.Configure(WebApiConfig.Register);
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ModelBinders.Binders.Add(typeof(DateTime), new DateTimeModelBinder());
            ModelBinders.Binders.Add(typeof(DateTime?), new NullableDateTimeModelBinder());

            ClientDataTypeModelValidatorProvider.ResourceClassKey = "ValidationMessages";
            DefaultModelBinder.ResourceClassKey = "ValidationMessages";
        }

        protected void Application_BeginRequest(object sender, EventArgs e) {
            CultureInfo ci = new CultureInfo(LanguageHelpers.GetUserCultureName());
            System.Threading.Thread.CurrentThread.CurrentUICulture = ci;
            System.Threading.Thread.CurrentThread.CurrentCulture = ci;
        }

        public void Application_Error(object sender, EventArgs e) {
            if (!Request.IsLocal) {

....

            }
        }
    }

1 Ответ

0 голосов
/ 30 апреля 2019

Посмотрев на ошибку в интернете, я думаю, у вас есть два варианта.

  1. Удалите все модули HTTP, если они добавлены в вашу систему.
  2. Удаление IIS из панели управления -> Программы и функции -> Отключить / включить функцию окна Удалите службы IIS, перезагрузите компьютер и установите снова.

Посмотрите, работает это или нет.

Кроме того, вы получаете эту ошибку для любого другого проекта или, возможно, создаете новый и проверяете это? Если да, то, вероятно, исправление IIS исправит это.

Ошибка сервера '/' Приложение. - HttpException

...