Многие объяснения уже присутствуют, чтобы объяснить, как это происходит и как это исправить, но вы также должны следовать рекомендациям, чтобы избежать NullPointerException
вообще.
См. также: A хороший список лучших практик
Я бы добавил, очень важно, хорошо использовать модификатор final
. Использование "окончательной" модификатор, когда это применимо в Java
Сводка:
final
для обеспечения хорошей инициализации. @NotNull
и @Nullable
if("knownObject".equals(unknownObject)
valueOf()
поверх toString (). StringUtils
StringUtils.isEmpty(null)
. Как Hoster, Вы определенно хотите переработать на Памяти & Время, потенциально пределы Запроса и ЦП. Вы хотите быть довольно агрессивными об этих пределах, но удостоверяться Вы публикуете их своим клиентам.
Память - 512 для x86 поля, возможно, 768. Для x64 можно установить это намного выше в зависимости от количества хостов на сервер. Просто необходимо быть осторожными и наблюдать, что пул приложений перерабатывает события на проблемах памяти.
Время - который Мы обычно перерабатываем в 1:00 утром, плюс или минус (первый сайт 1:01, второе 1:11, третье 1:21, именно так у Вас нет всей переработки одновременно)
предел Запроса - 35,000 был значением по умолчанию для IIS6, но это число довольно произвольно, и очень иждивенец на рассматриваемом сайте. Для небольших сайтов использования ночные перерабатывают, совершит нападки задолго до того, как Вы получаете запросы 35k.
ЦП - 95%/1 минут limit/KillW3WP, но использование это тщательно. Мое понимание этого - то, что, если ЦП поражает 95% + по пределу 1 минуты для этого рабочего процесса, рабочий процесс уничтожается и не может перезапустить для остатка от предела, когда Действие установлено на KillW3WP. Вы могли бы хотеть попробовать NoAction первоначально и просто смотреть Ваши журналы событий тщательно.
Перерабатывают журналы событий - Вы хотите удостовериться, что Вы регистрируетесь, пул приложений перерабатывает для каждого события threshhold, что Вы устанавливаете - т.е. если Вы ограничиваете базирующийся прочь пределов запросов, удостоверьтесь, что Предельный вход Запроса включен.
Одна вещь помнить состоит в том, что Вы должны устанавливать retail="true"
в <deployment>
элемент в Вашем machine.config:
<system.web>
<!--
<deployment
retail = "false" [true|false]
/>
-->
<deployment retail="true" />
</system.web>
установка Not это позволит сайту включать отладку, которая позволяет неограниченные тайм-ауты в запросах - не точно идеальный для hoster...
Если у Вас есть сайт интенсивного движения, используйте, долго перерабатывают расписание. Если у Вас есть использование сайта низкого трафика более короткое/по умолчанию расписание для сохранения памяти.
я узнал об этом из блога Al Zabir: http://msmvps.com/blogs/omar/archive/2008/10/04/best-practices-for-creating-websites-in-iis-6-0.aspx
Daniel S. прав, Ваши переменные сеанса уничтожаются на, перерабатывают, поэтому удостоверьтесь, что Вы тестируете это хорошо или имеете хорошую защиту от ошибок / восстановление при получении объектов сессии.
Подсказка: при переработке приложения все переменные сеанса уничтожаются... так осторожность на этом!
, по моему скромному мнению, сохраните значения по умолчанию.