2011-04-19 82 views
0

我有一个可以正常工作的Web表单,直到您继续工作为止。但是,如果你离开它20分钟,上提交按钮单击它提供了以下错误未将对象引用设置为对象的实例

enter image description here 错误

在我看来,页面请求对象获取NULL但究竟倾斜达到这个问题。 我试图增加在IIS的会话超时,但它没有帮助。

请帮我了解它的根本原因。

感谢所有

+2

什么在'代码btnSubmit_Click'看起来像? – 2011-04-19 06:45:05

+0

您可能想考虑发布一些代码。如果没有它,任何人都可以帮助你,我会非常惊讶。我强烈建议btnSubmit_Click代码。 – 2011-04-19 06:45:28

回答

3

没有看到一些代码只能猜测,但我认为btnSubmit_Click尝试使用存储在Session的对象。由于空闲时间过长,会话超时,并且单击按钮会导致请求获得一个新的会话,其中尚未分配该对象。

+0

谢谢Fredrik。有什么方法可以控制会话超时吗? – 2011-04-19 06:46:37

+1

@Priyanka:会话最终会超时,所以增加超时限制只会解决问题。你将需要更优雅地处理它。一种方法是在处理表单之前将表单存储在临时会话变量中;如果会话超时,建立一个新的会话(包括将用户重定向到登录页面或类似的地方)。当新会话建立并配置时,使用临时会话变量恢复表单,用户可以恢复工作。这只是一个快速的想法(也许不是最好的);有很多方法可以解决这个问题。 – 2011-04-19 06:53:52

0

尽量使页面加载事件的检查:

例如:

protected void Page_Load(object sender, EventArgs e) 
     { 

      if (Session["emp_num"] != null) 
      { 
       empNum = int.Parse(Session["emp_num"].ToString()); 
      } 
      else 
      { 
       //Go To The Home Page(Login Page) 
      } 
     } 

可以使此检查在Masterpage.cs

相关问题