Ссылка на объект, не заданная в GetRouteData (System.Web.Routing)
-
23-08-2019 - |
Вопрос
Это сводит меня с ума.Я внедрил Web.Маршрутизацию в приложении Web Forms.Приложение работает нормально, а затем необъяснимо (по крайней мере, на данный момент) выдается следующее сообщение об ошибке:
Ссылка на объект не установлена на экземпляр объекта.в System.Web.Routing.RouteCollection.Получить маршрутизируемые данные (HttpContextBase HttpContext) в System.Web.Routing.UrlRoutingModule.PostResolveRequestCache(HttpContextBase контекст) в System.Web.Routing.UrlRoutingModule.OnApplicationPostResolveRequestCache(объект отправитель, EventArgs e) в приложении System.Web.HttpApplication.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Выполнить() в System.Web.HttpApplication.ExecuteStep(IExecutionStep шаг, логическое значение и выполняется синхронно)
Эта ошибка является периодической, и никакая навигация по сайту не приведет к повторному появлению ошибки.
Моя интерпретация ошибки заключается в том, что запрос к серверу приводит к событию PostResolveRequestCache с нулевым HttpContext , но я не уверен, как это возможно.
Проблема устраняется путем перезапуска пула приложений.
Приложение запущено на IIS6, из-за этого я добавил подстановочную карту приложения в aspnet_isapi.dll флажок "Проверить, существует ли файл" снят.Это делается для того, чтобы включить понятные URL-адреса без расширений файлов, однако я рассматриваю возможность изменения этого в качестве возможного обходного пути.Мысль, стоящая за этим, заключается в том, что, возможно, на сервер отправляется запрос, который получает модуль, которого не должно быть.
Моя реализация была адаптирована, но соответствует общим рекомендациям, изложенным г-номХаак.Из-за характера ошибки я не уверен, что какой-либо из моих кодов даст много информации, но я, очевидно, готов сделать это по запросу.
Любая помощь была бы высоко оценена.
Решение
Добавление пользовательских расширений файлов не было идеальным решением, но предотвратило появление дальнейших сообщений об ошибках.
Другие советы
Может быть связано с изменяемым набором маршрутов.Видишь другой вопрос.
Эта ошибка согласуется с тем, что коллекция не является потокобезопасной в .Net.
Пожалуйста, ознакомьтесь с моим последним ответом на этот похожий вопрос