4

我们最近从 using 更改InProcStateServer用于存储 Session 信息。

我想知道,现在是否可以在不丢失会话信息的情况下更新网站上的配置文件。当我们使用 InProc 并更新资源文件(如语言文件)、Web 配置文件、global.asax 或App_Code.

'你调用的对象是空的'

这会随着 go to 改变StateServer吗?在不丢失会话数据的情况下更新这些类型的文件是否安全?我在我们的测试系统上运行了几个测试,看起来它工作正常,但我不是 100% 有信心......

4

2 回答 2

6

您的查询的一个简单答案是“是”

进一步说...
- 使用状态服务器,会话被序列化并存储在内存中的单独进程(aspnet_state.exe)中。
- 状态服务器可以在另一台机器上运行。
- 会话是持久的,您不必担心在应用程序重新启动期间您的会话数据会丢失
- 当存储基本类型的数据(例如字符串、整数等)时,在一个测试环境中它比 InProc 慢 15%。
- 如果存储大量对象,序列化/反序列化的成本会影响性能。
- 解决 InProc 模式下的会话状态丢失问题。允许 webfarm 在中央服务器上存储 ASP.NET 会话。状态服务器上的单点故障。

有关更多信息,请参阅:
-会话 inproc 模式到状态服务器的步骤

于 2013-01-03T12:42:17.057 回答
1

是的,它确实。一旦您的会话数据在进程外,重新启动工作进程是安全的。您可以通过登录到您的站点来测试它,进行一些涉及会话更新的操作并从任务管理器(或仅触摸 web.config)中终止相应的 w3wp.exe 进程(假设它是 IIS 7+)。

于 2013-01-03T12:37:01.360 回答