我陷入了一个非常奇怪的境地,已经一个月了。有时,如果我们的任何客户端出现异常,或者我们更新了某个页面或会话,则会发生什么情况?该特定用户永远无法访问该页面(他/她正在使用),除非他/她删除浏览器缓存。如果我们试图访问它,asp.net会将您注销并重定向到登录页面。
这件事一直在发生,现在还在我的本地电脑上发生。我以为这个问题只发生在我的本地,但今天一位客户也在直播中报道了。
例如,如果我被Pagexy.aspx踢出,我就无法访问它。如果我访问它,它会注销并将我发送到登录页面。我已经尝试过很多次输入URL或从超链接或按钮调用。
部署css文件后还有一件事。客户端看不到箭头,他们必须按Ctrl+F5,我的意思是客户端不知道这些事情。
感谢
附言:我制作这些视频来解释我的观点。1) 会话超时错误(http://screencast.com/t/CW0e4DsH)2) 快速更改代码并刷新页面(http://screencast.com/t/IKJQmkjU)这些视频将使人们清楚地了解正在发生的事情。
在您的第一段中,如果不首先清除浏览器缓存,您会说"用户永远无法访问页面"。然后你提到你自己可以访问它,但你会被重定向到登录页面。问题是,这是两种截然不同的场景,那是哪一种呢?用户是否也重定向到登录页面?在清除缓存之前,用户实际看到的是什么?
为了得到这个答案,我假设外部用户也被重定向到Login页面。
当您被重定向到"登录"页面时,您会遇到与IIS中的身份验证相关的内置安全机制。您没有提到您使用的是哪种身份验证,但使用Forms authentication,可以在浏览器中创建一个安全的cookie。该cookie在一定时间后过期,因此用户将被重定向到登录页面。在本地,如果刷新页面的次数过多,IIS会转储/忽略cookie,并要求您再次登录。这是预期的行为。
关于CSS的问题,请看一下这个问题。我认为BalusC的答案就是你在这方面想要的。
伙计们,我已经通过对Cache进行一些命中和试用来解决这个问题。
我尝试使用以下代码。
Response.CacheControl = "no-cache";
Response.AddHeader("PRAGMA", "no-cache");
Response.Expires = -1;
但它不起作用,然后我尝试下面的标签,但仍然无法解决。
这个问题的解决方案是
<%@ OutputCache Duration="1" NoStore="true" Location="None" %>
持续时间不能为0。但这解决了问题。
谢谢大家。