我正在为我的mvc应用程序使用state service session provider,如果我不序列化要存储在会话中的类型,则应用程序将引发错误,该类必须标记为Serializable。但是,如果我切换到InProc会话模式,则即使我的班级未标记为可序列化,会话也可以工作。根据我的理解,即使在InProc模式下,ASP.Net也会在存储在会话中之前对数据进行序列化,然后为什么在不使用Serializable属性的情况下InProc模式也可以工作。

最佳答案

使用InProc会话,数据不会“存储”在任何地方,只是保留在内存中。这种方式不需要序列化。对于其他方法,确实需要将数据写入某个位置(状态服务器,sql服务器),并且需要将其转换为字节流(然后再次返回)。

因此,如果您使用InProc并进行大量包含大量数据的会话,则可能会耗尽服务器内存。

关于c# - 为什么InProc session 模式不需要序列化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30751116/

10-10 04:52