经典 ASP 页面每次请求加载两次

Classic ASP page loading twice per request

我在经典 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

为什么会这样?

发现问题是由于 url-rewrite.

中的规则导致页面在每个请求中执行两次

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

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