Ссылка на объект не установлена ​​на экземпляр объекта при использовании объекта сеанса - PullRequest
0 голосов
/ 22 февраля 2012

Что в этом плохого?

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

в то время как я определил его как

Session["FileName"] = strFname;

Это дает ссылку на объектную ошибку.

Ответы [ 2 ]

3 голосов
/ 22 февраля 2012

Сессия может быть переходной.Он может полностью исчезнуть, или вы можете быть в новом сеансе, который никогда не назначал ничего для этой клавиши.Предположим худшее - на самом деле все, что вам нужно, это:

strFname = (string)Session["FileName"];
if(strFname != null) {
    // ...
}
0 голосов
/ 25 февраля 2012

Есть способы, которыми вы можете поддерживать сеансы вечно, пока вы не закроете окно. На странице, где вы хотите сохранить сеансы, добавьте это на страницу .aspx где-то внизу, прямо перед

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

Теперь вам нужно создать новую страницу. Назовите это Defibrillator.aspx Это не моя идея, но я забыл имя автора.

Defibrillator.aspx

<body></body>

Defibrillator.aspx.cs

protected void Page_Load(object sender, EventArgs e)
{
    Response.AddHeader("Refresh", Convert.ToString((Session.Timeout * 60) - 10));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...