首页 > 解决方案 > 每个请求加载两次经典 ASP 页面

问题描述

我在经典 ASP 中使用Jscript作为脚本语言有这个非常直接和简单的脚本:

var counter_value = Session.Contents.Item("counter") || 0;

Response.Write("old:" + counter_value);

Session.Contents("counter") = counter_value + 1;

Response.Write("<br/>");

counter_value = Session.Contents.Item("counter");

Response.Write("new: " + counter_value);

当这个脚本第一次在浏览器中运行时,我得到这个输出:

old: 0
new: 1

但是当我在浏览器中刷新页面时,我得到了一个意想不到的结果:

old: 2
new: 3

为什么会这样?

标签: asp-classicsession-variables

解决方案


发现问题来自每个请求执行两次的页面,因为 url-rewrite 中的规则。

该规则规定所有请求都应重写为index.asp,因此当浏览器发送请求时,index.asp响应中会返回 的内容。

favicon.ico当浏览器自动请求图像时,同样的事情会再次发生。


推荐阅读