2010-11-15 90 views

回答

2

会话变量默认由Web服务器保存在内存中。在构建时,您将重置应用程序,并因此丢失所有会话(以及静态,缓存等)值。

如果您愿意,可以通过更改session state mode将ASP.NET配置为使用不同的会话状态提供程序。注意“InProc”是默认设置,它将全部保存在内存中。您可以使用运行在不同进程中的StateServer,并且可以位于不同的计算机或SQLServer上 - 甚至可以自己编写。

+0

所有很好的答案,但为了开发目的,我将使用状态服务器模式来存储会话状态。 – 2010-11-16 21:21:42

1

每次重建时,服务器显然都会重新启动并删除所有会话数据,因此这取决于您要完成的操作。

如果您正在讨论简单的用户会话数据,然后尝试将它们存储在Cookie中(用于开发目的),但是如果您使用.NET的缓存来存储更多的会话数据,那么这会变得更复杂,那么它可能是值得的。

1

请记住,每次重建时,都可能重新定义每个Session变量的含义。在构建之后,ASP.NET无法知道它是否具有相同的含义。

通常不值得甚至想到让他们在身边。在某些情况下(测试),也许你应该编写一个测试页面来填充变量,然后启动你进入你正在测试的页面。