2013-04-18 31 views
8

在我们的ASP.NET网站中,其中一个页面中有一些标签。每个标签代表不同的内容,并从一个标签移动到另一个标签重新加载整个页面。 如果我目前处于选项卡的其中一个区域,并在此停留大约一分钟或更长时间,然后转到另一个选项卡,则只会出现白色空白屏幕。(在浏览器中没有页面源代码信息)。白屏问题,如果用户在asp.net页面中保持空闲状态

不幸的是,这个相同的问题在较低的测试环境中对于同一个网站来说完全不可重现。问题仅在网站的生产版本中发生。

是否有IIS设置或web.config设置,我应该更改以解决此问题。因为我相信有关网页的源代码不会是一个理由。

+4

_“是否有IIS设置或web.config设置,我应该改变以解决此问题。”_ - 我不认为在用户闲置一分钟后会出现_“显示白页”_设置。你将不得不对这个错误进行分析,没有任何人能从这里看到。启用最详细的日志记录和跟踪,使用Fiddler查看,使用不同的浏览器,尝试查明_who_显示白页和_why_。 – CodeCaster

+2

您使用哪种验证模式?你使用会话状态来存储经过身份验证的用户信息吗?检查在浏览器的开发人员工具或Fiddler中切换标签时服务器如何处理请求。 –

+0

在你的页面中是否有任何长时间运行的进程?像Flash动画,RSS提要,Javascript或AJAX?你可以使用httpwatch或httpfox来检查。您还应该使用perfmon检查服务器的CPU使用情况。 – Pinoy2015

回答

5

这可能是因为会话超时已达到结束会话的限制。

你在这种情况下,三个可能的解决方案:

首先

你可以尝试编辑web.config文件位于您的应用程序来扩展会话超时的根源。尝试是这样的:

<sessionState mode="StateServer" timeout="500"> 

</sessionState> 

根据MSDN你可以设置timeout高达525,601分钟(1年)。

如果不工作,你有机会,你可以尝试编辑在IIS超时:

打开IIS,点击应用程序池,选择应用程序 为您的应用程序池。

右键点击它,选择属性。

在“性能”选项卡中,将“空闲时间为......分钟后关闭工作进程”的空闲超时设置为所需分钟数 。

重要提示:除此之外,您必须如上所述在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

你是否使用任何自定义http模块?我们可以看看页面源代码和代码吗?它发生在我身上的时候,我使用了elmah,但情况却完全不同。

其他可能是由于其他人指出的会话事情。希望有所帮助。

1

我会打开chome开发工具或萤火虫,如果在Firefox中。如果在萤火虫中,我会查看网络和控制台标签,并从网络的角度看看实际发生的情况。应该很容易查看开发中的流量并与生产进行比较。我猜他们是不一样的,它会立即指向你正确的方向。

如果你想看流量,提琴手也是一种选择,就好像你是一个中间人一样。

相关问题