Пока вы не злоупотребляете состоянием приложения, я не вижу проблем в использовании его для элементов, срок действия которых вы не хотите истекать.
В качестве альтернативы я бы, вероятно, использовал статическую переменную рядом с кодом, который ее использует. Таким образом, вы избегаете прохода через HttpApplicationState
, а затем получаете ссылку на System.Web, если я хочу получить доступ к своим данным.
Но не забудьте продумать, как вы используете объект (ы), который вы храните в HttpApplicationState
. Если это DataSet
, к которому вы продолжаете добавлять материал для каждого запроса, то в какой-то момент вы в конечном итоге потребляете слишком много памяти на веб-сервере. То же самое может произойти, если вы продолжите добавлять элементы в HttpApplicationState
при обработке запросов, в какой-то момент вы заставите приложение перезапуститься.
Это, вероятно, преимущество использования Cache в вашей ситуации. Использование больших объемов памяти не так фатально, потому что вы позволяете ASP.NET освобождать элементы в вашем кеше, когда памяти становится мало.