iis - 经典 ASP 中的缓冲区问题
问题描述
我们有一个经典的 ASP 应用程序在 Windows Server 2012 和 IIS(版本 8)Web 服务器上运行,并且必须修改页面以允许从数据库中检索更大的数据集。当我们在不修改任何 IIS 设置的情况下运行它时,我们会在 IE 中收到以下错误;
我们尝试将站点级别和 IIS 应用程序级别的缓冲区级别从标准 4194304 (4Mb) 限制修改为 20971520 (20Mb),但是当我们在 IE 和 chrome 中将输出更改为下图时,它会不断要求每次输入凭据20秒左右。
为什么会这样?请问我们如何解决?
解决方案
您可能最好使用禁用缓冲区Response.Buffer = False
默认情况下,IIS 缓冲所有输出,这意味着在构建网页时,它会存储在内存(缓冲区)中,直到脚本完成执行,然后整个页面作为一个文件从缓冲区发送到客户端计算机。如果您正在构建一个包含大量数据的非常大的页面,则可能会导致缓冲区溢出。增加缓冲区大小限制是一种解决方案,虽然我不明白为什么它会开始要求凭据,但您一定是在 IIS 中配置错误。
另一种解决方案是使用Response.Flush()
间歇性地从缓冲区刷新数据并将 HTML 以块的形式发送到客户端机器。但是完全禁用缓冲区将为您执行此操作,而无需Response.Flush()
.
推荐阅读
- python - 如何在 scikit-learn 中获取 Top-k 标签
- azure-data-explorer - 即使映射可用,来自 Python SDK 的 Azure ADX 数据摄取也无法显示“BadRequest_MappingReferenceWasNotFound”
- python-3.x - 当具有时间索引浮点列的 Pandas DataFrame 超过阈值超过 5 分钟时检测和计数
- python - 如何将变量分配给 lambda 函数中的参数索引?
- c - 如何用 mutt “拆分”附件?(留言/部分)
- python - 为 aws lambda 创建 python 库 zip
- php - 更新larvel中的内容时出现ArgumentCountError
- python - 计算轴承的差异
- express - SharePoint Online ReactJS Webpart CORS 斗争
- sql - SQL 数据库“操作必须使用可更新查询”解决方法