SQL Session State& Javascript错误

时间:2011-01-21 11:35:10

标签: asp.net sql-server session-state

我通过以下方式将会话存储切换到SQL服务器:

    <sessionState mode="SQLServer"
           sqlConnectionString="data source= jim; user id=jim;password=jim;"
           cookieless="false"
           timeout="20" />

  </system.web>

现在我在此代码中收到以下错误

var eventArgs = new Sys.WebForms.EndRequestEventArgs(error, data ? data.dataItems : {}, executor);
Sys.Observer.raiseEvent(this, "endRequest", eventArgs);
if (error && !eventArgs.get_errorHandled()) {
    throw error;
}
  

Microsoft JScript运行时错误:   Sys.WebForms.PageRequestManagerServerErrorException:   发生未知错误   在服务器上处理请求。   从中返回的状态代码   服务器是:500

如果我将会话保留为默认值而不是SQL Server,则它可以正常工作。 还有一点,我可以在会话中添加项目确定 - 这似乎是在重新加载页面时发生的 - 可能是某种AJAX问题?

在设置SQL Session存储方面,我这样做了: http://support.microsoft.com/kb/317604

当我运行它时,该应用程序正常工作。

提前致谢。

吉姆

编辑 - 在应用程序日志中,我现在可以看到: 程序集'System.Web中的'System.Web.UI.WebControls.ListItem',Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a'未标记为可序列化。

......而且确实如此,我正在向视图状态添加一个列表项。 但为什么这样可以正常 - 除非在SQL中存储会话?]

再次感谢!

吉姆

2 个答案:

答案 0 :(得分:0)

看起来this可能是一个很好的答案吗?

答案 1 :(得分:0)

好吧,当你需要外化/序列化内容时,需要调用serialize来获取流。 ListItem是一个你不应该序列化的UI控件.. :) http://bytes.com/topic/asp-net/answers/322990-serializing-drop-down-list-data-sources-session-state