IHTTPHandler 的无缓冲输出

2024-03-24

我想从一个流式传输数据IHttpHandler班级。我从数据库加载大量行,序列化并压缩它们,然后通过网络发送它们。另一方面,我希望我的客户端能够在服务器完成所有对象的序列化之前解压缩和反序列化数据。

我在用着context.Response.OutputSteam.Write写入我的数据,但输出数据似乎在发送到客户端之前被放入缓冲区中。有没有办法避免这种缓冲?


The Response.Flush方法应该将其发送到网络上;然而,也有一些例外。如果 IIS 使用动态压缩,即配置为压缩动态内容,则 IIS 将不会刷新流。然后是整个“分块”传输编码。如果您没有指定Content-Length那么接收端不知道响应体有多大。这是通过分块传输编码来完成的。某些 HTTP 服务器要求客户端使用Accept-Encoding包含 chunked 关键字的请求标头。其他的只是在指定完整长度之前开始写入字节时默认为分块;但是,如果您指定了自己的,他们不会这样做Transfer-Encoding响应头。

在 IIS 7 和禁用压缩的情况下,Response.Flush那么应该总是能达到目的,对吗?并不真地。 IIS 7 可以有许多模块来拦截请求和响应并与之交互。我不知道默认情况下是否安装/启用了任何一个,但您仍然应该知道它们可以影响您想要的结果。

...我正在从数据库加载大量行,序列化,然后压缩他们,然后将他们发送到电线上......

很好奇您正在压缩此内容。如果您使用GZIP,那么您将无法通过调用flush 来控制发送数据的时间和数量。另外,使用 GZIP 内容意味着接收端也可能无法立即开始读取数据。

您可能希望将记录分成更小的、易于理解的 10、50 或 100 行块。压缩并发送它,然后处理下一组行。当然,现在您需要向客户端写入一些内容,以便他们知道每个压缩行集有多大,以及它们何时到达末尾。看http://en.wikipedia.org/wiki/Chunked_transfer_encoding http://en.wikipedia.org/wiki/Chunked_transfer_encoding有关分块传输如何工作的示例。

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

IHTTPHandler 的无缓冲输出 的相关文章

  • 我如何理解这个 C 类型声明?

    double bar int double double double double 在查看讲座幻灯片时 我发现了留给学生的练习 用简单的英语来说 什么是类型bar在这个 C 声明中 Please帮助我解决这个问题 我什至不知道从哪里开始
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 在 Xamarin 中隐藏软键盘

    如何隐藏软键盘以便在聚焦时显示Entry在 Xamarin forms 便携式表单项目中 我假设我们必须为此编写特定于平台的渲染器 但以下内容不起作用 我创建自己的条目子类 public class MyExtendedEntry Entr
  • GCC 和 ld 找不到导出的符号...但它们在那里

    我有一个 C 库和一个 C 应用程序 尝试使用从该库导出的函数和类 该库构建良好 应用程序可以编译 但无法链接 我得到的错误遵循以下形式 app source file cpp text 0x2fdb 对 lib namespace Get
  • 为什么这个没有特殊字符的正则表达式会匹配更长的字符串?

    我正在使用此方法来尝试查找匹配项 例如 Regex Match A2 TS OIL TS OIL RegexOptions IgnoreCase Success 我得到了真实的结果 我很困惑 我认为这应该返回 false 因为模式中没有特殊
  • ASP.Net Core 内容配置附件/内联

    我正在从 WebAPI 控制器返回一个文件 Content Disposition 标头值自动设置为 附件 例如 处置 附件 文件名 30956 pdf 文件名 UTF 8 30956 pdf 当它设置为附件时 浏览器将要求保存文件而不是打
  • 类似于 .NET Framework 2.0 的 MEF(托管可扩展性框架)

    我在自己的项目中使用了 MEF 并且非常喜欢它 这很容易 在弄清楚我们的awkwardAPI模型 它刚刚工作了 现在我需要 NET Framework 2 0 类似的东西 有没有可以在 NET Framework 2 0 下工作的类似项目
  • 类的成员复制

    在学习 复制成员 概念时 书中给出了如下说法 此外 如果非静态成员是引用 const 或没有复制赋值的用户定义类型 则无法生成默认赋值 我不太明白这个声明到底想传达什么 或者说这个说法指的是哪一种场景 谢谢 该语句与编译器自动为您编写的类
  • 在 JSQMessagesViewController 中显示 LocationMediaItem

    我刚刚尝试实施LocationMediaItem in my Xamarin iOS应用程序使用JSQMessagesViewController 一切都很顺利 唯一的问题是UICollectionView应该显示位置的单元格永远停留在加载
  • 如何从文本文件读取整数到数组

    这就是我想做的 我对此有些不满 但我希望你能容忍我 这对我来说是一个非常新的概念 1 在我的程序中 我希望创建一个包含 50 个整数的数组来保存来自文件的数据 我的程序必须获取用户的文档文件夹的路径 2 文件的名称为 grades txt
  • AES 输出是否小于输入?

    我想加密一个字符串并将其嵌入到 URL 中 因此我想确保加密的输出不大于输入 AES 是可行的方法吗 不可能创建任何始终会创建比输入更小的输出的算法 但可以将任何输出反转回输入 如果您允许 不大于输入 那么基本上您只是在谈论同构算法alwa
  • 每个租户的唯一用户名和电子邮件

    我正在使用以下代码编写多租户应用程序ASP NET Core 2 1 我想覆盖默认的与用户创建相关的验证机制 目前我无法创建多个具有相同的用户UserName My ApplicationUser模型有一个名为TenantID 我想要实现的
  • 使用restsharp序列化对象并将其传递给WebApi而不是序列化列表

    我有一个看起来像的视图模型 public class StoreItemViewModel public Guid ItemId get set public List
  • cout 和字符串连接

    我刚刚复习了我的 C 我尝试这样做 include
  • 了解使用 Windows 本机 WPF 客户端进行 ADFS 登录

    我已经阅读了大量有关 ADFS 与 NodeJS Angular 或其他前端 Web 框架集成以及一般流程如何工作的文献 并通过 Auth0 Angular 起始代码构建了概念证明 但我不明白如何这可以与本机 WPF Windows 应用程
  • 您是否将信息添加到每个 .hpp/.cpp 文件的顶部? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 创建新的 C 头文件 源文件时 您会在顶部添加哪些信息 例如 您是否添加日期 您的姓名 文件描述等 您是否使用结构化格式来存储此信息 e g F
  • 如何在 DropDownList 中保留空格 - ASP.net MVC Razor 视图

    我在视图中通过以下方式绑定我的模型 问题是我的项目文本是格式化文本 单词之间有空格 如下所示 123 First 234 00 123 AnotherItem 234 00 123 Second 234 00 我想保留此项目文本中的空格 即
  • 在简单注入器中解析具有自定义参数的类

    我正在使用以下命令创建 WPF MVVM 应用程序简易注射器作为 DI 容器 现在 当我尝试从简单注入器解析视图时遇到一些问题 因为我需要在构造时将参数传递到构造函数中 而不是在将视图注册到容器时 因此这不是适用的 简单注入器将值传递到构造
  • 将 char[][] 转换为 char** 会导致段错误吗?

    好吧 我的 C 有点生疏了 但我想我应该用 C 来做我的下一个 小 项目 这样我就可以对其进行抛光 并且我已经有不到 20 行的段错误了 这是我的完整代码 define ROWS 4 define COLS 4 char main map
  • xsi:type 属性搞乱了 C# XML 反序列化

    我使用 XSD exe 根据 XML 架构 xsd 文件 自动生成 C 对象 我正在反序列化 OpenCover 输出 但其中一个部分类未正确生成 这是导致异常的行

随机推荐

  • MongoDB 中“id”和“_id”字段的区别

    使用 MongoDB 文档中的字段 ID 或 ID 有什么区别吗 我问这个 因为我通常使用 id 但是我在文档中看到了这种排序 id 1 http www mongodb org display DOCS Optimizing Object
  • 高效的按位运算,用于计数位或查找最右|最左的位

    给定一个 unsigned int 我必须执行以下操作 计算设置为 1 的位数 找到最左边1位的索引 找到最右边1位的索引 操作不应依赖于体系结构 我已经使用按位移位完成了此操作 但我必须迭代几乎所有位 es 32 例如 计算 1 unsi
  • 窗口背景图像的模糊效果

    我有一个以图像为背景的窗口 在那个窗口上我还有按钮和其他控件 这是我对该窗口的风格
  • Angular:使用指令禁用材质按钮不起作用

    我想通过指令禁用一些按钮 向按钮添加禁用属性 该指令适用于经典 html 按钮 但不适用于角形材质设计按钮 mat button https material angular io components button overview im
  • float64 到 float32 的转换给出了意外的结果

    当我转换一个float64数到一个float32我得到一个奇怪的结果 In 22 np float32 20140131 0 Out 22 20140132 0 为什么会发生这种情况 20140131 0 无法表示为 32 位整数 32位浮
  • 如何为 Azure 虚拟机生成磁盘不足警报

    我有一个虚拟机 用作构建服务器 该虚拟机的磁盘经常堆积 并且正在努力解决该问题 同时我正在寻找设置在磁盘空间变高时触发警报的选项 我检查了监控下的可用指标 但只能找到 磁盘写入字节 和 磁盘读取字节 这对我没有帮助 我需要帮助设置发送到我的
  • 通过R中的卷积添加两个随机变量

    我想计算 R 中两个概率分布的卷积 我需要一些帮助 为了简单起见 假设我有一个变量 x 它呈正态分布 平均值 1 0 stdev 0 5 变量 y 呈对数正态分布 平均值 1 5 stdev 0 75 我想确定 z x y 据我所知 z 的
  • .prop() 与 .data()

    随着新版本的发布jQuery v1 6 http api jquery com category version 1 6 并添加了 prop method 使用上是否存在本质区别 prop over data 我在文档中看到 在 IE9 之
  • Spring MVC:发布请求和带有数组的 json 对象:错误的请求

    我正在尝试使用 Spring MVC 从 http POST 请求中检索参数 该请求包含以下 json 对象 内容类型 application json 该对象本身包含一个 customObjects 数组 globalId 338 lin
  • 有角。为什么调用markForCheck()结果来查看更新

    到处都说 markForCheck 只是将当前组件视图和所有父组件 直到根组件 标记为脏组件 因此 下次 DetectChanges 执行时 它将更新视图 从这一点上我有两个问题 两者都在该组件具有的上下文中changeDetection
  • 在php中,“return false”在echo语句之后会执行任何操作吗?

    当我在 php 中显示错误消息时 我通常这样做 if query Success code else Error message error msg An error occurred return false 我回应 error msg前
  • Bokeh:AttributeError:“DataFrame”对象没有属性“tolist”

    我是 pandas 和 bokeh 的新手 我正在尝试从 pandas 数据帧创建散点图 但是 我不断收到以下错误 new data colname df colname tolist AttributeError DataFrame ob
  • 发现扩展时遇到错误:Error Domain=PlugInKit Code=13“查询已取消”

    我正在尝试显示或上传 UIImage 但收到此错误 发现扩展时遇到错误 Error Domain PlugInKit Code 13 查询已取消 UserInfo NSLocalizedDescription 查询已取消 import UI
  • 宏中的 SAS 宏

    我有一个关于 macro 的问题 我可以在另一个 宏中设置 宏吗 简短的例子 情况的 图片 macro Tier 1 do Iter 1 to i macro Tier 2 proc sql noprint select 1 Iter in
  • SOAP 请求返回 wsdl 而不是预期的 SOAP 响应

    我的 SOAP 请求有问题 当我尝试向服务器发送以下肥皂请求时 它会返回 预期结果 地点 https YOUR SERVER apitransactional services TransactionalService wsdl Input
  • Ruby 相当于 grep -v

    这就是我一直在做的事情 my array reject elem elem regex each 我觉得这有点笨拙 但我还没有找到任何内置的东西可以让我将其更改为my array grepv regex 有这样的功能吗 Ruby 2 3 实
  • 如何使用DATA_PUMP导出到S3存储桶?

    我们有 RDS Oracle 实例 我需要将特定架构导出到转储文件中 导出工作并将转储文件复制到 DATA PUMP DIR 问题是 RDS 没有文件目录访问权限 我需要在 S3 上导出 DMP 文件或复制到另一个 EC2 实例 文章 LI
  • 轻松的十六进制/浮点转换

    我正在 c 和 python 程序之间进行一些输入 输出 仅浮点值 python 有一个很好的功能 可以将浮点值转换为十六进制数字并返回 如您在此链接中看到的 http docs python org library stdtypes ht
  • annotationProcessor gradle 4.7+ 配置不运行 lombok

    我在使用 gradle 4 7 项目时收到以下消息 The following annotation processors were detected on the compile classpath lombok launch Annot
  • IHTTPHandler 的无缓冲输出

    我想从一个流式传输数据IHttpHandler班级 我从数据库加载大量行 序列化并压缩它们 然后通过网络发送它们 另一方面 我希望我的客户端能够在服务器完成所有对象的序列化之前解压缩和反序列化数据 我在用着context Response