0

我在 Azure 报告中使用带有报告查看器的 asp.net webrole 项目。
一开始我遇到了“ASP.NET 会话已过期”的一些问题,我解决了将 AsyncRendering 设置为 false 并在 web.config 中设置 sessionState timeout ="120" mode="InProc" cookieless="true" 的问题。
但是,当我在单个实例中部署项目运行时,一切正常。但是当我在多个(两个)实例中部署项目时,一些图像(图表、仪表等)没有加载。但是,如果我右键单击丢失的图像,我可以通过上下文菜单加载图像。
有任何想法吗 ?对我来说似乎是一些时间问题。

4

1 回答 1

0

这是因为您正在使用 InProc 会话状态。您无法控制负载均衡器,因此您可能从一个实例加载页面,但从另一个实例加载图像。这意味着您的会话在两个实例上都会有所不同。

当使用多个实例时,不应存储会话 InProc,而应选择分布式存储(如表存储、SQL Azure 或 AppFabric 缓存)。这将允许您的所有实例使用相同的会话数据。

示例:Windows Azure 缓存的会话状态提供程序

于 2012-06-13T14:35:18.003 回答