【发布时间】:2012-12-14 04:59:00
【问题描述】:
我们刚刚从旧的 ASP.NET 成员(从 MVC3)迁移到新的 ASP.NET 通用提供程序,因为我们的 SQL 目标是 Azure SQL。迁移期间的 SQL 脚本非常痛苦!无论如何,我们将会话状态设置为 SQL(即 web.confg 中的<sessionState mode="Custom")。
现在,如果网站意外关闭,(比如调试 => 停止)当我们恢复时,我们会收到错误:
Violation of PRIMARY KEY constraint 'PK__Sessions__C9F492908756A0EE'. Cannot insert duplicate key in object 'dbo.Sessions'. The duplicate key value is (<randomstring>).
The statement has been terminated.
正如预期的那样,我确认会话确实在 [db].[SessionId] 表内的数据库中具有相同的条目,并带有主键。
问题:谁负责删除该数据库条目?我知道如果正确启动注销,它应该被代码清除。但是如果它已经存在,不应该有一些自动错误处理(在会员本身中)吗?如果是,为什么不触发?如果没有,如何添加?
【问题讨论】:
标签: session asp.net-membership