我正在运行 ASP 4.5 应用程序。用户必须在其中一页回答几个问题并按下按钮以完成测试。我的应用程序使用文本文件来分析用户的答案。如果用户快速完成所有操作,应用程序可以正常运行,但是当他完成测试需要超过 20 分钟的时间时,我会得到一个异常
Cannot read from a closed TextReader
我不明白哪里出了问题,因为我只在按下按钮时才打开 StreamReader。这是我的代码的一部分:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GlobalVariables.surname = Request.QueryString["surname"];
GlobalVariables.name = Request.QueryString["name"];
GlobalVariables.gender = Request.QueryString["gender"];
GlobalVariables.age = int.Parse(Request.QueryString["age"]);
}
Label1.Width = 700;
Button1.Click += new EventHandler(this.Button1_Click);
}
void Button1_Click(Object sender, EventArgs e)
{
var f0= new FileStream(Server.MapPath("./key.txt"), FileMode.Open, FileAccess.Read);
StreamReader sr = new StreamReader(f0);
//.....
sr.Close();
sr.Dispose();
}
有人可以帮帮我吗?
when it takes longer then 20 mis for him to finish the test I get an exception
这听起来很像是他们的 session 已过期。要解决此问题,我建议添加一些 javascript 以建立到 Web 服务器的检测信号。心跳将使 session 保持事件状态;它不需要做任何事情,只需每分钟左右发出一个请求,这样服务器就知道您还在那里。
我是一名优秀的程序员,十分优秀!