(Почти) каждое утро, после загрузки моего ноутбука, запуска 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) {
....
}
}
}