我们能更新客户端缓存吗?

时间:2012-01-10 17:18:26

标签: asp.net session caching timeout logout

我被困在一个非常古怪的位置,已经过了一个月。有时,如果我们的任何客户端获得异​​常或我们更新某个页面或会话过期,特定用户永远不能访问该页面(他/她正在使用),除非他/她删除浏览器缓存,否则会发生什么。如果我们尝试访问它,asp.net会将您注销并重定向到登录页面。

这种情况正在发生,并且仍在我的本地计算机上发生。我认为这个问题只发生在我当地,但今天客户也报告了现场。

例如,如果我从Pagexy.aspx被踢了,我无法访问它。如果我访问它,它会退出并将我发送到登录页面。我已经多次尝试输入URL或从超链接或按钮调用。

部署css文件后还有一件事。客户端看不到箭头,他们必须按Ctrl + F5我的意思是客户不知道这些东西。

感谢

PS:我已经制作了这些视频来解释我的观点。 1)会话超时错误(http://screencast.com/t/CW0e4DsH) 2)快速更改代码并刷新页面(http://screencast.com/t/IKJQmkjU) 这些视频将清楚地了解正在发生的事情。

2 个答案:

答案 0 :(得分:0)

在第一段中,如果没有先清除浏览器缓存,则说“用户永远不能访问该页面”。然后你提到你自己可以访问它,但你被重定向到登录页面。麻烦的是,这是两种非常不同的情况,所以它是什么?用户是否也被重定向到“登录”页面?在清除缓存之前,用户实际看到了什么?

为了这个答案,我假设外部用户也被重定向到登录页面。

当您重定向到“登录”页面时,您遇到的是与IIS中的身份验证相关的内置安全机制。您没有提到您正在使用哪种身份验证,但使用Forms身份验证时,会在浏览器中创建一个安全cookie。该cookie在一段时间后过期,因此用户将被重定向到登录页面。在本地,如果您刷新页面太多次,IIS会转储/忽略cookie并要求您再次登录。这是预期的行为。

关于CSS的问题,请查看this question。我认为BalusC的答案就是你在这方面所寻求的。

答案 1 :(得分:0)

伙计们,我通过对Cache进行一些点击和试用来解决这个问题。

我尝试使用以下代码。

Response.CacheControl = "no-cache";
Response.AddHeader("PRAGMA", "no-cache");
Response.Expires = -1;

但它没有用,然后我尝试下面的标签,但仍然无法解决它。

解决此问题的方法是

<%@ OutputCache Duration="1" NoStore="true" Location="None" %>

持续时间不能为0.但这会对问题进行排序。

谢谢大家。