1

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

 Page page = HttpContext.Current.Handler as Page;

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

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

4

1 回答 1

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

快乐编码!

于 2012-10-21T13:38:49.680 回答