0

有时我们会收到以下错误。我无法重现它。我尝试注销并导航到需要身份验证的页面,但它不会引发此异常。

到目前为止,此异常仅发生在页面加载后立即调用的 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)

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

4

1 回答 1

1

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

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

于 2015-06-01T16:01:21.480 回答