ASP.Net图表工具图像使用SQL Server会话消失

时间:2011-06-07 15:07:19

标签: asp.net charts asp.net-charts

我们正在使用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 :(得分:0)

首先,我不确定您在哪里设置密钥。它是否存在或者您将其设置为更具体的位置。接下来,如何将代码设置为Render。

从我看到的,你期待一些神奇的ASP.NET童话来存储价值并自动从会话中拉出来,这不是会话的工作方式。

此外,我不确定业务问题是什么,所以我甚至不确定会话是否是最佳存储位置。 ASP.NET提供了一组很棒的缓存选项,可以根据您的需要提供更多用户特定或更多特定于应用程序的选项。它也不是自动化的,但通常比使用Session存储更好。

正如我所看到的,这里的问题是你缺少一些实际处理会话存储的代码,而不是SQL Server问题。在这种情况下,我将声明SQL Server可能是一个错误的Session选项,特别是如果你最终得到更大的图形。与其他缓存解决方案相比,您可以大大降低可扩展性。换句话说,我不相信会话在任何情况下都是一个很好的选择,但可能会更糟糕的SQL Server。

将SQL Server用于会话状态的主要原因是以下之一:

  1. 需要分布式解决方案,但不能使用会话服务器
  2. 需要能够从工作进程故障等中恢复,并仍然保持会话
  3. 如果您有更多代码并且可以跟进更具体的业务原因,您可能会获得有关如何解决问题的更全面的答案。