压缩来自 IHttpHandler 的响应时出现“无效使用响应过滤器”

2024-01-18

我有一个 IHttpHandler 返回一个文件。当响应流被压缩时,要么自动使用 Telerik RadCompression 要么通过使用显式设置过滤器



context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
  

返回到浏览器的响应是正确的,但响应的末尾是一些 HTML。 HTML 包含异常:



[HttpException (0x80004005): Invalid use of response filter]
   System.Web.HttpResponseStreamFilterSink.VerifyState() +3928894
   System.Web.HttpResponseStreamFilterSink.Write(Byte[] buffer, Int32 offset, Int32 count) +28
   System.IO.Compression.DeflateStream.Dispose(Boolean disposing) +363
   System.IO.Stream.Close() +28
   System.IO.Compression.GZipStream.Dispose(Boolean disposing) +63
   System.IO.Stream.Close() +28
   System.IO.Compression.DeflateStream.Dispose(Boolean disposing) +595
   System.IO.Stream.Close() +28
   System.IO.Compression.GZipStream.Dispose(Boolean disposing) +63
   System.IO.Stream.Close() +28
   System.Web.HttpWriter.FilterIntegrated(Boolean finalFiltering, IIS7WorkerRequest wr) +754
   System.Web.HttpResponse.FilterOutput() +121
   System.Web.CallFilterExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +174
  

如果我确保响应未压缩,则响应不包含异常。

那是怎么回事?


确保您没有阻止缓冲。显然,要压缩响应,您必须允许对其进行缓冲。

即,需要删除以下两行之一:

context.Response.BufferOutput = false;
context.Response.Filter = new GZipStream(context.Response.Filter, CompressionMode.Compress);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

压缩来自 IHttpHandler 的响应时出现“无效使用响应过滤器” 的相关文章

随机推荐

  • EclipseLink、EntityManager 需要两个持久性单元

    我有一个 jar 库 A 或 eclipse 中的项目 它有自己的持久性单元 META INF persistence xml 和一些实体类 以及使用该库的另一个项目 B 在项目 B 中还有持久化单元和实体类 在项目 B 中 我需要使用项目
  • 嵌入、对象和视频标签之间的区别?

    据我所知 我知道embed tag用于嵌入来自 youtube 等网站的视频 object tag适用于 Flash 视频和video tags受到HTML5 但我很好奇这些标签的深入细节 以及作为一名开发人员 应该在哪里使用哪个标签 em
  • SSRS - 后续页面内容区域中标题和 tablix 之间的空格/边距

    好吧 我知道这个问题很难消化 所以我希望这张附图能让我的问题更有意义 基本上我想在第一页之后在标题和 tablix 之间保留一些空间 我对标题使用底部边框 用户不希望看到表格和标题粘在一起 尝试放置空文本框 隐藏 但实际上不起作用 因为我无
  • django 错误无法导入名称“RemovedInDjango30Warning”

    伙计们 我对 Django 相当陌生 我刚刚开始从事一个个人项目 并决定滥用 pycharm 我认为它与错误有关 或不相关 当我跑步时python manage py runserver我收到下面发布的错误 我做了一些谷歌搜索 看起来它是由
  • C++中的vtable是什么[重复]

    这个问题在这里已经有答案了 可能的重复 为什么我需要虚拟表 https stackoverflow com questions 3004501 why do i need virtual table C 中的 vtable 是什么 到目前为
  • 纯虚函数调用

    我正在使用 boost python 来制作用 C 编写的 python 模块 我有一些带有纯虚函数的基类 我已将其导出如下 class Base virtual int getPosition 0 boost python class B
  • 如何在 elm 中按索引获取列表项?

    我有一个清单 现在我想要第 n 项 在哈斯克尔我会使用 但我找不到它的榆树变体 Elm 添加了数组0 12 1 http elm lang org blog announce 0 12 1 elm 并且在 0 19 中对实现进行了大规模修改
  • 如何在 Microsoft Access 中通过 VBA 设置 INSERT SQL 查询的参数值?

    我是 Access 新手 之前使用过 C SQL Server 和 Net 我有一个项目正在进行 我必须完成一些部分 该场景可以描述为 带有子表单的 Access 表单 一个Access查询 即上述子表单的数据源 有两个参数 显示为 Par
  • 使用 SyndicateFeed 读取 SyndicateItem 中的非标准元素

    在 net 3 5 中 有一个 SyndicateFeed 可以加载 RSS 提要并允许您在其上运行 LINQ 以下是我正在加载的 RSS 示例
  • 谷歌云端点返回 java long 作为 JSON 中的字符串

    我正在使用 google app engine 最新版本 1 9 30 我定义我的云端点如下 Api name app version v1 transformers EndpointDateTransformer class public
  • 如何在 IE 10/11 中可靠地将 XML 转换为字符串?

    当使用 jQuery 解析 XML 并将其转换回字符串时 IE 10 和 IE 11 未正确保留命名空间 除了编写我自己的 stringify 代码之外 还有其他可接受的方法可以在 IE 10 11 中执行此操作吗 这是我正在使用的代码 我
  • 直线和球体之间的交点

    我试图找到球体和直线之间的交点 但老实说 我不知道该怎么做 有人能帮我解决这个问题吗 将直线表示为函数t x t x0 1 t t x1 y t y0 1 t t y1 z t z0 1 t t z1 When t 0 它将在一个终点 x0
  • 多行文本框根据文本量自动调整其高度

    我有一个文本框 可以返回长度从 5 个字符到 1000 个字符的各种字符串 它具有以下属性 多行 真 自动换行 true 我需要设置文本框的哪些其他属性才能实现以下操作 盒子的宽度应该是固定的 根据返回的文本量自动调整框的高度 例如 如果文
  • 具有绝对/固定子项的父容器的自动高度

    我试图为包含 2 个子元素的 div 设置自动高度 分别固定和绝对定位 我希望我的父容器具有自动高度 但我知道这很难 因为子元素及其位置从页面结构中取出 我尝试为我的父 div 设置一个有效的高度 但是由于我的布局是响应式的 当它缩小到移动
  • 如何确定一个枚举值是否是另一个枚举值的后继?

    我正在尝试编写一个函数来告诉我是否Enum是另一个人的继承者 这是我的第一次尝试 isSuccessorOf x y x succ y 看起来很合理 我们来尝试一下 gt isSuccessorOf 3 2 True gt isSucces
  • 如何在 androidTest 范围内使用 kapt

    有没有办法将 kapt 用于 androidtest 范围 目前我正在从 com neenbedankt gradle plugins android apt 迁移到 kapt 效果很好 但我不确定如何在 androidTest 范围内执行
  • 如何在 .NET CF 2.0 下调整位图大小

    我有一个位图 我想以编程方式将其放大到原始大小的约 1 5 倍或 2 倍 在 NET CF 2 0 下有没有一种简单的方法可以做到这一点 一种 正常 方式是创建一个新的Bitmap所需大小 创建一个Graphics然后将旧图像绘制到其上Gr
  • 使用 LSTM 进行多元二元序列预测

    我正在研究序列预测问题 并且在这方面没有太多经验 因此下面的一些问题可能很幼稚 FYI 我创建了一个关注 CRF 的后续问题here https stackoverflow com questions 53987682 multivaria
  • 将json字符串保存到客户端电脑(使用HTML5 API)

    我读过一些关于相同内容的旧线程 但最近看到文件 API 发生了很大变化 我的要求是保存一个json文件 数据在indexdDB本地 但我需要一种方法来备份它 由于我使用indexdDB 所以我只针对最近的浏览器 主要是chrome 那么 是
  • 压缩来自 IHttpHandler 的响应时出现“无效使用响应过滤器”

    我有一个 IHttpHandler 返回一个文件 当响应流被压缩时 要么自动使用 Telerik RadCompression 要么通过使用显式设置过滤器 context Response Filter new GZipStream con