httpcontext.current.handler.master在某段时间后返回null

时间:2012-10-21 10:28:48

标签: c# asp.net .net master-pages httpcontext

我在ASP.NET中遇到问题。我在Master Page中有一个下拉列表,我使用以下代码在UI项目之外的库中访问它:

 Page page = HttpContext.Current.Handler as Page;

 if (page != null)
 {
     return page.Master.FindControl("MyDdl") as DropDownList;
 }

此代码正常工作正常。但有时如果我保持非活动状态15到20分钟然后导致回发(例如点击按钮,更改菜单等)。页面的主属性变为空。即page.Master开始返回null。然后我按F5刷新页面,它再次开始工作。我也搜索谷歌,但没有找到任何相关的答案。任何人都可以指导我这里发生了什么吗?

1 个答案:

答案 0 :(得分:2)

您遇到会话超时,会话已结束。您可以在两个地方配置会话。

首先在你的web应用程序web.config中如下:

<configuration> 
  <system.web> 
     <sessionState timeout="30"></sessionState> 
  </system.web> 
</configuration> 

或使用IIS管理器的第二个:

转到包含应用程序主要属性的选项卡,双击“会话状态”,在选项卡底部显示“超时(以分钟为单位)”。还有其他选项可以更改会话状态存储。

还可以使用代码检查会话状态。请看一下这篇文章: http://www.codeproject.com/Articles/227382/Alert-Session-Time-out-in-ASP-Net

快乐的编码!