在我们的ASP.NET网站中,其中一个页面中有一些标签。每个选项卡代表不同的内容,从一个选项卡移动到另一个选项卡会重新加载整个页面。 如果我当前处于其中一个标签位置并在那里停留大约一分钟或更长时间,然后转到另一个标签页,则只会出现一个白色的空白屏幕。(没有页面源代码在浏览器中的信息)。
遗憾的是,同样的问题在较低的测试环境中对于同一网站来说根本不可重现。问题仅发生在网站的生产版本中。是否有IIS设置或web.config设置我应该更改以解决此问题。我相信相关网页的源代码不是理由。
答案 0 :(得分:5)
这可能是因为会话超时已达到会话结束的限制。
在这种情况下,您有三种可能的解决方案:
<强>第一强>
您可以尝试编辑位于应用程序根目录的web.config
文件,以延长会话超时时间。尝试这样的事情:
<sessionState mode="StateServer" timeout="500">
</sessionState>
根据MSDN,您可以将timeout
设置为525,601
分钟(1年)。
<强>第二强>
如果它不起作用并且您有权访问,您可以尝试在IIS上编辑超时:
打开IIS,单击“应用程序池”,选择“应用程序” 适合您应用的游泳池。
右键单击,选择属性。
在“性能”选项卡中,将“空闲超时”设置为所需的分钟数 for&#34;关闭工作进程,闲置.....分钟后#34;。
重要提示:除此之外,你必须如上所述在web.config中设置超时。
<强>第三强>
您可以创建一个在后台执行的ajax
函数,防止会话过期:
function keepSessionAlive(mod) {
mod.open("GET", "blank.html", true);
mod.onreadystatechange = function() {
if (mod.readyState == 4) {
document.getElementById("#blankDiv").innerHTML = mod.responseText;
}
};
mod.send(null)
}
setInterval('keepSessionAlive()', 100000);
那就是它。希望它有所帮助。
答案 1 :(得分:1)
您使用任何自定义http模块吗?我们可以看看页面源aspx和代码背后?当我使用elmah但在完全不同的情况下,它发生在我身上。
其他可能是由于其他人指出的会话事情。希望有所帮助。
答案 2 :(得分:1)
如果在firefox中,我会打开chome dev工具或firebug。如果在firebug中,我会查看网络和控制台选项卡,并从网络角度查看实际发生的情况。应该很容易看到开发中的流量并与生产进行比较。我猜它们不一样,它会立即指向正确的方向。
如果你想像看中年人那样观看交通,也可以选择提琴手。