【发布时间】:2011-11-09 12:48:56
【问题描述】:
我最近将一个经典的 asp 站点移到了运行 IIS 7.5 的 Windows 2008 服务器上。
主页是一个框架页面,上面有两个框架 - 底部框架包含两个 iframe。 javascript 计时器在标头框架中运行,并强制两个 iframe 中的页面每 10 分钟重新加载一次。在所有其他条件相同的情况下,这可以完美运行 - 会话永远不会超时。在屏幕上,我显示“上次更新时间为 10.35”——因此用户可以看到上次更新时间。主框架页面中的每个页面 - 以及 iframes - 在顶部都有..
IF IsEmpty(Session("CoID")) THEN
Response.Write ... some javascript to replace the main page with the log in page
END IF
正如我所说 - 这在大多数情况下都非常有效。
以用户身份使用网站 - 如果我的盒子进入睡眠状态并且由于 Internet 连接不可用而无法刷新 - 当我唤醒盒子时,页面可能会在 10.50 的最后一次更新时坐在那里(对于例如,这可能是两个小时前)。机器立即唤醒刷新尝试发生 - 现在您会认为会话将丢失并且检测空会话的代码将启动并将页面替换为登录页面。但是,这不会发生。相反,我收到两个 500 内部服务器错误消息,其中 iframe 中的两个页面应该是。
我不明白的是 - 如果我右键单击标题并选择“刷新” - 它会做它应该做的 - 检测到会话为空并用登录页面替换主页。为什么 iframe 中的两个页面不做同样的事情?检测空会话代码在所有页面上都是相同的,但由于某种原因,当刷新尝试重新加载两个 iframe 中的页面时 - 会生成 500 内部服务器错误。
【问题讨论】:
-
是什么导致了 500 错误?您是否在 IIS 中启用了详细错误以查看它落在哪一行?
标签: asp-classic iis-7.5