Nano Hash - криптовалюты, майнинг, программирование

Почему мое httpssessionstate теряет ценность?

Я имею дело с приложением Sitecore, которое хранит некоторые «элементы» в корзине для пользователей, которые не аутентифицированы (я думаю, они не должны быть аутентифицированы), используя такой код:

 this.Session["abc"] 

Затем, как только пользователь попадает на страницу корзины и хочет продолжить, чем если он ждет слишком долго, более минуты, значение в сеансе теряется!

Вот мои web.config соответствующие настройки:

Я на пределе возможностей и не знаю, что очищает мою сессию?

<sessionState mode="InProc" cookieless="false" timeout="20" sessionIDManagerType="Sitecore.FXM.SessionManagement.ConditionalSessionIdManager">
  <providers>
    <add name="mongo" type="Sitecore.SessionProvider.MongoDB.MongoSessionStateProvider, Sitecore.SessionProvider.MongoDB" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" />
    <add name="mssql" type="Sitecore.SessionProvider.Sql.SqlSessionStateProvider, Sitecore.SessionProvider.Sql" sessionType="Standard" connectionStringName="session" pollingInterval="2" compression="true" />
  </providers>
</sessionState>

и

<authentication mode="None">
  <forms name=".ASPXAUTH" cookieless="UseCookies" timeout="90" />
</authentication>

Я думаю, вам не нужно проходить аутентификацию, чтобы использовать сеанс? И да, я проверил код, убедившись, что ничто не аннулирует мою сессию.

03.12.2015

  • У вас есть VisitorIdentification в вашем макете? См. stackoverflow.com /вопросы/32465430/ 03.12.2015
  • Спасибо, Марек, нет, у меня не было идентификации посетителя, как добавить это в мой макет? 03.12.2015
  • @krul Sitecore.Analytics 03.12.2015
  • Сделайте это так: ‹%@ Import Namespace=Sitecore.Analytics %› ‹!DOCTYPE html› ‹head› ‹sc:VisitorIdentification id=VisitorIdentification1 runat=server /› 03.12.2015
  • @krul мы говорим только о производственной проблеме? У вас есть балансировщик нагрузки или это происходит на вашем локальном компьютере? 03.12.2015
  • но все равно жалуется. Тип или имя пространства имен «VisitorIdentification» не существует в пространстве имен «Sitecore.Web.UI.WebControls». 03.12.2015
  • как местные, так и производственные 03.12.2015
  • @krul это в Sitecore.Analytics. Не знаю, почему он жалуется. Может быть, просто проблема intelisense? 03.12.2015
  • У вас есть <system.web><pages><controls><add tagPrefix="sc" namespace="Sitecore.Web.UI.WebControls" assembly="Sitecore.Analytics" />... other ...</controls> в вашем web.config? 03.12.2015
  • @MarekMusielak, да 03.12.2015
  • Проверьте, есть ли ссылки на Sitecore.Analytics из вашего проекта. Попробуйте перезапустить ВС. иногда это помогает. Проверьте, можете ли вы загрузить страницу или она выдает исключение. 03.12.2015
  • Я рассматриваю альтернативу; используя кеш следующим образом: Common.Helpers.CacheHelper.SetValue(Constants.CacheKeys.abc + this.Session.SessionID, ABC); Что вы думаете об этом? 03.12.2015
  • @MarekMusielak и да, мне не хватало dll sitecore.analytics в моем проекте, спасибо 03.12.2015
  • Не используйте кеш, как описано в вашем комментарии. Если ваш сеанс нулевой, у вас не будет идентификатора сеанса для извлечения элемента из кеша. 03.12.2015
  • Давайте продолжим обсуждение в чате. 03.12.2015

Ответы:


1

Проблема с 1-минутным тайм-аутом сеанса часто возникает, когда в макете нет VisitorIdentification. Sitecore рассматривает каждого нового посетителя как потенциального сканирующего робота и старается не использовать 20-минутную сессию без необходимости.

Убедитесь, что в ваших макетах есть VisitorIdentification. Вы можете добавить его для веб-форм следующим образом:

<%@ Import Namespace="Sitecore.Analytics" %>
<sc:VisitorIdentification runat="server" />

и для MVC так:

@using Sitecore.Mvc.Analytics.Extensions
@Html.Sitecore().VisitorIdentification()

Если ваша Visual Studio по-прежнему жалуется, что не может найти тип VisitorIdentification в пространстве имен Sitecore.Web.UI.WebControls, проверьте, ссылается ли Sitecore.Analytics из вашего веб-проекта и зарегистрирован ли Sitecore.Analytics в <system.web><pages><controls> в web.config:

<add tagPrefix="sc" namespace="Sitecore.Web.UI.WebControls" assembly="Sitecore.Analytics" />

ИЗМЕНИТЬ:

Подумайте о тысячах сеансов для роботов, и каждый из них может быть довольно тяжелым с точки зрения использования оперативной памяти. Если их всех держать в течение 20 минут, они могут легко убить сервер. Вот почему Sitecore меняет время ожидания сеанса для каждого нового пользователя и устанавливает его на 1 минуту.

Если макет Sitecore настроен правильно и включено VisitorIdentification, ваш браузер автоматически выполнит еще один запрос к вашему серверу, и время ожидания вашего сеанса будет увеличено до значения по умолчанию с web.config (например, 20 минут).

03.12.2015
  • Отличный ответ, спасибо - я был убежден, что возникла проблема с тайм-аутом состояния сеанса, частным или общим сеансом и т. Д., И это было просто отсутствие тега идентификации посетителя. 24.05.2017
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..