使用会话对象时,对象引用未设置为对象的实例

本文关键字:对象 设置 实例 会话 对象引用 | 更新日期: 2023-09-27 18:25:19

这里面出了什么问题?

strFname = this.Session["FileName"].ToString();

而我把它定义为

Session["FileName"] = strFname;

它的给定对象引用错误。

使用会话对象时,对象引用未设置为对象的实例

会话可以是瞬态的。它很可能会消失,或者你可能处于一个从未为该键分配过任何内容的新会话中。假设最坏的情况——事实上,你所需要的只是:

strFname = (string)Session["FileName"];
if(strFname != null) {
    // ...
}

只要不关闭窗口,就有一些方法可以使会话永远保持活力。在您希望保持会话有效的页面中,将其添加到底部的.aspx页面中,就在之前

<!-- Keep all session variables alive -->
<iframe id="Defib" src="Defibrillator.aspx" runat="server" frameborder="0" height="0" width="0"></iframe>

现在你必须制作一个新页面。这不是我的主意,但我忘了作者的名字。

除颤器.aspx

<body></body>

除颤器.aspx。cs

protected void Page_Load(object sender, EventArgs e)
{
    Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 10));
}