【发布时间】:2009-10-29 13:37:19
【问题描述】:
不考虑这是个好主意还是坏主意:
当会话进程外时,是否可以在 ASP.NET 会话中存储 LINQ-to-SQL 域对象?
[编辑] 我目前收到以下错误并问了这个问题,因为我怀疑 LINQ-to-SQL 对象:
无法序列化会话状态。在“StateServer”和“SQLServer”模式下,ASP.NET 将序列化会话状态对象,因此不允许不可序列化的对象或 MarshalByRef 对象。如果自定义会话状态存储在“自定义”模式下完成类似的序列化,则适用相同的限制。 [/编辑]
例如
Session["Zoo"] = new Zoo() {
new Lion(),
new Tiger(),
new Elephant()
}
地点:
- Zoo、Lion、Tiger、Elephant 都来自 ZooDataContext
并且 web.config 文件包含
<sessionState
mode="StateServer"
stateConnectionString="tcpip=127.0.0.1:42424"
stateNetworkTimeout="10"
sqlConnectionString="SqlStateConnectionString"
sqlCommandTimeout="30"
timeout="20"
regenerateExpiredSessionId="true"/>
【问题讨论】:
标签: asp.net linq-to-sql serialization session-state