SqlSessionState:无法强制转换System类型的对象.DBNull到System.Byte[]类型

本文关键字:类型 System DBNull 对象 Byte 转换 SqlSessionState | 更新日期: 2023-09-27 17:51:20

偶尔会出现以下错误。我还没能复制它。我试过登出并导航到一个需要身份验证的页面,但它没有抛出这个异常。

到目前为止,这个异常只发生在页面加载后立即调用的web服务上。(所以页面加载发生,然后onready事件开始加载一些数据与ajax调用)

我们正在使用带有SQL server会话存储的web表单。

Unable to cast object of type 'System.DBNull' to type 'System.Byte[]'.
at System.Web.SessionState.SqlSessionStateStore.DoGet(HttpContext context, String id, Boolean getExclusive, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at System.Web.SessionState.SqlSessionStateStore.GetItemExclusive(HttpContext context, String id, Boolean& locked, TimeSpan& lockAge, Object& lockId, SessionStateActions& actionFlags) at System.Web.SessionState.SessionStateModule.GetSessionStateItem() at System.Web.SessionState.SessionStateModule.BeginAcquireState(Object source, EventArgs e, AsyncCallback cb, Object extraData) at System.Web.HttpApplication.AsyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

我能做些什么来解决这个问题?

SqlSessionState:无法强制转换System类型的对象.DBNull到System.Byte[]类型

听起来好像您的会话超时了,但您假设您正在从会话状态检索对象。

我建议在尝试分配会话对象之前在代码中添加空检查

相关文章: