IIS 7.5上的内部服务器500错误经典asp

时间:2011-11-09 12:48:56

标签: asp-classic iis-7.5

我最近将一个经典的asp站点移动到运行IIS 7.5的Windows 2008服务器上。

主页是一个框架页面,上面有两个框架 - 底部框架包含两个iframe。 javascript计时器在标题框架中运行,并强制两个iframe中的页面每10分钟重新加载一次。在所有其他条件相同的情况下,这非常有效 - 会议永远不会超时。在屏幕上,我显示“10.35的最后更新” - 因此用户可以看到上次更新的时间。主框架页面中的每个页面 - 以及iframe - 都位于顶部..

IF IsEmpty(Session("CoID")) THEN
Response.Write ... some javascript to replace the main page with the log in page
END IF

正如我所说 - 这在大部分时间都是完美的。

使用网站作为用户 - 如果我的盒子进入睡眠状态并且由于互联网连接不可用而刷新无效 - 当我将盒子唤醒时,页面可能会坐在那里,最后更新时间为10.50(对于例如,这可能是两个小时前)。机器立即唤醒刷新尝试发生 - 现在您认为会话将​​丢失,检测到空会话的代码将启动并用登录页面替换页面。但是,这不会发生。相反,我得到两个500内部服务器错误消息,其中iframe中的两个页面应该是。

我不明白的是 - 如果我右键单击标题并选择“刷新” - 它会执行它应该做的事情 - 检测到会话为空并用登录页面替换主页面。为什么iframe中的两个页面没有做同样的事情?检测空会话代码在所有页面上都是相同的,但由于某种原因,当刷新尝试重新加载两个iframe中的页面时 - 会生成500内部服务器错误。

1 个答案:

答案 0 :(得分:0)

我建议将Session("CoID")分配给变量,然后对其进行测试,即

Dim sess
sess = Session("CoID")

If sess = "" Then 
    ' code you want to execute '
End If

由于IsEmpty有时会意外地将true验证为已分配空行的字符串,我认为检查变量是否等于""更安全。