我使用Entity Framework6的序列化的Model对象来存储在会话中。根据以下设置,会话状态将存储在数据库中:
<sessionState mode="SQLServer"
stateConnectionString="tcpip=127.0.0.1:42424"
sqlConnectionString="data source=MyServer;integrated security=false;user id=MyUser;password=MyPassword;Application Name=MyAppName;"
cookieless="false" timeout="20"/>
由于实体框架的关系,一些序列化的对象也有组合的父对象。合成的对象显示为
“函数求值要求所有线程都运行”
对于这些组合对象,在调试过程中带有十字符号(一旦单击十字,它就会显示值)。这些组合对象(具有“函数求值需要所有线程运行”)在从下一页的会话中检索时变为null,而其他值则按预期检索。
根据下面的设置,所有这些代码都与"InProc“会话状态一起工作。
<sessionState mode="InProc" customProvider="DefaultSessionProvider">
<providers>
<add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" />
</providers>
</sessionState>
有人能帮上忙吗?
发布于 2017-05-22 13:47:39
您正在保存会话中具有延迟加载关系的实体。这不适用于InProc (用于检索实体的上下文将在尝试加载关系时被释放),也不适用于SQL:您不能序列化数据库连接。
解决方案:
https://stackoverflow.com/questions/44114396
复制