为什么InProc会话模式不需要序列化

Yog*_*put 2 c# asp.net asp.net-mvc session serialization

我正在使用state service session providerfor my mvc应用程序,如果我没有序列化我要在会话中存储的类型,应用程序会抛出一个错误,该类必须标记为Serializable.但是,如果我切换到InProc会话模式,即使我的类没有标记为Serializable,会话仍然有效.根据我的理解,即使在InProc模式的情况下ASP.Net在存储在会话之前序列化数据,那么为什么InProc模式在不使用Serializable属性的情况下工作.

Han*_*ing 7

使用InProc会话,数据不会"存储"在任何地方,它只会留在内存中.这样就不需要序列化了.对于其他方法,数据确实需要写入某个地方(状态服务器,sql服务器),并且需要转换为字节流(然后再返回).

因此,如果您使用InProc并且拥有大量具有大量数据的会话,则可能会耗尽服务器内存.