Есть ли способ получить доступ к текущему сеансу из управления заменой? - PullRequest
3 голосов
/ 11 ноября 2009

Похоже, что контекстный параметр asp: метод управления заменой сети пропускает текущий сеанс после кэширования страницы.

Помимо получения содержимого элемента управления заменой через ajax или использования какого-либо другого метода для хранения данных, которые в противном случае находились бы в сеансе (например, в базе данных), могу ли я что-нибудь еще сделать?

Есть ли обходной путь для использования собственного сеанса asp.net в управлении заменой?

<asp:Substitution  ID="myid" MethodName="method1"></asp:Substitution>

public static string method1(HttpContext context) <--  [1]

[1] --- conext.session равен нулю после кэширования страницы

Ответы [ 2 ]

1 голос
/ 11 ноября 2009

Из того же блога.

re: Совет / Уловка: Внедрите «пончик кеширования» с помощью функции замены выходного кэша ASP.NET 2.0

Пятница, 23 февраля 2007 г., 1:30 по ScottGu

Привет, Скотт,

Я думаю, что ошибка, которую вы видите, связана с тем, что вы пытаетесь получить доступ к объекту сеанса.

К сожалению, я не думаю, что вы можете получить доступ к сеансу в этом сценарии - поскольку объект сеанса никогда не заполняется (поскольку страница никогда не создается).

Извините!

Scott

0 голосов
/ 11 ноября 2009

Что произойдет, если вы убедитесь, что context.Session не имеет значение null до доступа к значению? У меня были проблемы с сессиями раньше, но не при использовании элемента управления Substitution, потому что Context.Session не установлен для первого запроса, который делает пользователь. Возможно, у вас есть связанная проблема, поскольку она не будет соответствовать стандартному жизненному циклу страницы.

Согласно ScottGu все должно быть доступно.

Этот статический метод будет передан объекту HttpContext во время выполнения, который содержит стандартные встроенные функции запроса, ответа, пользователя, сервера, сеанса, приложения ASP.NET и который затем можно использовать ...

Совет / хитрость: внедрите «пончик кеширования» с помощью функции замены выходного кэша ASP.NET 2.0

...