Изображение инструментов построения диаграмм ASP.Net исчезает при использовании сеанса SQL Server - PullRequest
0 голосов
/ 07 июня 2011

Мы используем инструменты построения диаграмм ASP.Net (версия 3.5) и хотели бы хранить изображения диаграмм в сеансе SQL Server.Вот раздел в web.config:

<add key="ChartImageHandler" value="storage=session;timeout=20;" />

И наша настройка сеанса в web.config выглядит следующим образом:

<sessionState mode="SQLServer" sqlConnectionString="Data Source={sql server name}; Integrated Security=SSPI;" cookieless="false" timeout="30"/>

Изображение диаграммы отлично работает при первом запуске страницызагружен.Однако он не загружается каждый раз после этого.Мы получаем красный X / изображение не найдено графическое.Похоже, что изображение не сохраняется должным образом в сеансе, но изменение значения «тайм-аут» не помогает.

Версия опции хранения файлов работает:

<add key="ChartImageHandler" value="Storage=file;Timeout=800;Dir=C:\Directory\TempChartFiles;"/>

Однако мы бы предпочли использовать вместо этого параметр сеанса SQL Server.Есть ли способ заставить опцию сеанса SQL Server работать с инструментами построения диаграмм ASP.Net?

1 Ответ

0 голосов
/ 07 июня 2011

Во-первых, я не уверен, где вы настраиваете свой ключ.Это в или вы настроили что-то более конкретное.Далее, как настроить код на Render.

Из того, что я вижу, вы ожидаете, что какая-то волшебная фея ASP.NET сохранит значение и автоматически извлечет его из сессии для вас, а это не так, как работает сессия.

Кроме того, я не уверен, в чем проблема бизнеса, поэтому я даже не уверен, является ли сессия лучшим местом для хранения.ASP.NET имеет замечательный набор параметров кэширования, которые могут быть более специфичными для пользователя или более специфичными для приложения, в зависимости от ваших потребностей.Это также не является автоматическим, но часто работает лучше, чем использование Session для хранения вещей.

Проблема, на мой взгляд, заключается в том, что вам не хватает некоторого кода для фактической обработки хранения сеанса, а не SQL Serverвопрос.Я скажу, что SQL Server может быть плохим вариантом Session в этом случае, особенно если у вас более крупная графика.Вы можете значительно снизить масштабируемость по сравнению с другими решениями для кэширования.Другими словами, я не уверен, что сеанс является хорошим вариантом в любом случае, но, возможно, хуже с SQL Server.

Основная причина использования SQL Server для состояния сеанса - одна из следующих:

  1. Требуется распределенное решение, но нельзя использовать сервер сеансов
  2. необходимо иметь возможность восстановления после сбоя рабочего процесса и т. Д. И при этом поддерживать сеанс

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

...