每次构建我的Web应用程序时,我的会话变量都会在构建之前丢失。反正在构建期间是否保留会话变量?
答案 0 :(得分:2)
默认情况下,会话变量由Web服务器保存在内存中。在构建时,您正在重置应用程序,从而丢失所有会话(以及静态,缓存等)值。
如果您愿意,可以通过更改session state mode将ASP.NET配置为使用其他会话状态提供程序。注意“InProc”是默认值,它将它们全部保存在内存中。您可以使用在不同进程中运行的StateServer,它可以位于不同的计算机上,也可以位于SQLServer上 - 甚至可以自己编写。
答案 1 :(得分:1)
每次重建时,服务器显然都会重新启动并核对所有会话数据,因此这取决于您要完成的任务。
如果您正在讨论简单的用户会话数据,那么请尝试将它们存储在cookie中(用于开发目的),但如果您使用.NET的缓存来存储更多的会话数据,那么这将变得更加复杂,因此它可能是值得的。
答案 2 :(得分:1)
请记住,每次重建时,您都可能重新定义每个Session变量的含义。在构建之后,ASP.NET无法知道它是否具有相同的含义。
通常不值得考虑保留它们。在某些情况下(测试),那么也许你应该编写一个测试页面来填充变量,然后启动你进入你正在测试的页面。