在经典 asp 页中禁用缓冲区时显示不需要的字符



我使用经典asp已经十多年了,我不记得见过这个问题。这是我的代码:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<% Option Explicit %>
<%

    Response.Expires = -1
    Response.CacheControl = "No-cache"
    Response.Charset = "windows-1252"
    Response.Buffer = false
    Server.ScriptTimeout = 300
%>
hello
world
with
unwanded
characters

这是我在输出中得到的内容:

2a hello world with unwanded characters 0

在开头和结尾添加了一些字符,我不知道为什么,但它似乎与缓冲区有关。如果我设置 Buffer = True,它可以解决问题,但由于真实页面将返回大量数据,我必须将缓冲区设置为 false。

我检查了页面编码,一切似乎都很好,文件以 windows-1252 编码保存。IIS 配置与站点上没有任何问题的页面上的其他页面相同。

我不明白这些字符是从哪里来的,但我想它一定与编码有关,有人知道吗?

谢谢

当我将

以下 URLRewrite 规则添加到我的 web.config 文件中时,我遇到了同样的问题。这将清空服务器 HTTP 标头。

<rule name="Remove Server header">
    <match serverVariable="RESPONSE_Server" pattern=".+" />
    <action type="Rewrite" value="" />
</rule>

删除规则解决了这个问题。 我不知道为什么会这样,但绝对为我解决了这个问题。

最新更新