【发布时间】:2010-09-03 06:31:02
【问题描述】:
我有一个 aspx 页面,我可以在其中动态创建报告和图表。创建这些图表和报告需要花费大量时间,因此在创建完成之前会向用户显示一个空白屏幕。
为了解决这个问题,我试图在页面加载时在单独的线程中触发报告生成,当报告生成完成时,我试图设置一个会话变量来指示完成。我有一个 AJAX 计时器,它会不断检查这个标志。
protected void Page_Load( object sender, EventArgs e )
{
if ( !IsPostBack )
{
ThreadPool.QueueUserWorkItem( new WaitCallback( DoLongRunningProcess ) );
}
}
public void GenerateReport( object state )
{
///generate report
Session[ "done" ] = true;
}
问题是 Session 为 null(Session 状态只能在 enableSessionState 设置为 true 时使用,无论是在配置文件中还是在 Page 指令中。还请确保 System.Web.SessionStateModule 或当我尝试设置完成标志时,自定义会话状态模块包含在应用程序配置的
你们能告诉我如何解决这个问题吗?
【问题讨论】:
标签: asp.net asp.net-ajax