Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Вот мой хромой эксперимент; я создал страницу ASPX со следующим кодом:
protected void Page_Load(object sender, EventArgs e)
{
Response.BufferOutput = false;
Response.Write("Step 1<br />");
System.Threading.Thread.Sleep(10000);
Response.Write("Step 2<br />");
System.Threading.Thread.Sleep(10000);
Response.Write("Step 3<br />");
}
Этот код просто представляет некоторые loooong загрузки страницы. Я получил доступ к странице и в то время как она загружалась, я создал файл "app_offline.htm". Я тогда загрузил другой веб-браузер и подтвердил, что приложение было в режиме офлайн. Я тогда пересмотрел свой запрос "загрузки"..., он завершился полностью к шагу 3.
, Это подтверждает, что текущие запросы заканчивают загружаться, и отклонены новые запросы.
Из блога ScottGu:
В основном при размещении файла с этим именем в корне каталога веб-приложения, ASP.NET 2.0 завершит работу приложения, разгрузит домен приложения с сервера и прекратит обрабатывать любые новые входящие запросы на то приложение . ASP.NET также тогда ответит на все запросы на динамические страницы в приложении путем передачи содержания обратно файла app_offline.htm (например: Вы могли бы хотеть иметь “site под construction” или “down для сообщения maintenance”).
ScottGu Так, кажется, что это продолжит обрабатывать текущий запрос, но остановит новые входящие запросы.