我有一个使用ADO.net进行数据库调用的Webforms页面。当用户将页面空闲一段时间,然后尝试保存时,对数据库的调用将失败。他必须刷新才能发挥作用。
我的问题:在.NET Webforms中,是否存在某种会话超时会导致对数据库的调用失败?我需要在web.config中设置超时属性吗?或者它可能是IIS的东西吗?
答案 0 :(得分:1)
默认情况下,会话通常会在20分钟后过期,因此对Session的任何引用都将返回空值。如果在访问值之前没有检查null,则会获得Null Reference异常。
如果您的表单的按钮单击事件没有访问Session对象中的任何内容,那么您应该没有问题。
答案 1 :(得分:0)
如果没有看到任何代码,给你一个很好的答案有点困难。但我会尝试给你一些提示:
1)当会话超时时,应用程序显然会失去对会话中用户存储值的访问权限,因此,如果您使用用户会话来存储数据库连接,连接字符串或类似的东西,是的,数据库连接会受到影响。
2)会话和身份验证是不同的事情并且有不同的处理方式,例如,您可以让其中一个过期而另一个处于活动状态,您的代码需要处理这两种情况。
3)是的,您可以通过更改web.config上的以下设置来增加会话超时,但尝试不在Sessions上存储与数据库连接相关的任何内容,最好是避免使用它们,但如果您需要,请尝试在其中放入小而简单的信息。
<configuration>
<system.web>
<sessionState mode="StateServer" timeout="30" />
</system.web>
</configuration>