首页 > 代码库 > 解决ASP.NET 自定义报表部署到IIS浏览时出现ASP.NET会话已结束问题

解决ASP.NET 自定义报表部署到IIS浏览时出现ASP.NET会话已结束问题

进到公司开始接触的项目就要做报表,原系统使用的是水晶报表,但是水晶报表展示方面美观方面不怎么好需客户需要美化一下。自定义报表与水晶报表之前都没有接触过,自己先学了一下这两种报表,后面觉得自定义报表设计比较灵活所以就选择了自定义报表。当开发完成后自己在开始环境下浏览测试都没有出现过ASP.NET会话已过期的问题,可是当部署到IIS测试人员进行测试时出如图情况:

自己接触IIS不多,并且在开发环境下测试都没有问题联署到IIS就有问题当时就觉得有点头大,于是上网找了下资料但是这方面的资料并不多并且很多都是雷同的而他们的方法都试过了还是不能解决这个问题。

附上网找到的一些不适用的方法:

1、将Web.config文件中的<sessionState mode="InProc" cookieless="true" timeout="20"> </sessionState>

改成<sessionState mode="InProc" cookieless="false" timeout="20"> </sessionState>

2、页面加入
protected override void OnPreRender(EventArgs e) 

Response.AppendHeader("P3P", "CP=\"CAO PSA OUR\""); 
base.OnPreRender(e); 
}  

等等,这里就不一 一例举了,为了解决这问题找了一两天解决方法都找不到,我都快晕头转向了。后面甚至还想放弃自定义报表改回水晶报表。一次在和同事讨论在IIS部署出现的另一个问题时无意中发现了这个:

开始会话状态默认是“在进程中(I)“的,想是不是问题出在这里,后面就把他改成了如图这样。然后浏览就没有出现这ASP.NET会话已过期的问题了。问题就这样解决了。