【问题标题】:In which cases does HttpResponse.SupportsAsyncFlush return false在哪些情况下 HttpResponse.SupportsAsyncFlush 返回 false
【发布时间】:2013-01-04 16:38:06
【问题描述】:

HttpResponse 对象上有一个名为 SupportsAsyncFlush 的属性,根据 MSDN,它返回 HttpWorkerRequest.SupportsAsyncFlush 属性的值。但是,当我通过反编译器查看HttpWorkerRequest.SupportsAsyncFlush 属性时,我可以看到它已经返回false,这让我觉得我错过了一些东西。

由于HttpWorkerRequest 是一个抽象类,我认为托管层(IIS 等)实现了这个类并在需要时覆盖HttpWorkerRequest.SupportsAsyncFlush 虚拟属性?如果是这样,在IIS下HttpContext.Response.SupportsAsyncFlush在哪些情况下返回false?

【问题讨论】:

  • 我也在阅读源代码,想知道这是否是未来功能的占位符?
  • @rickschott 因为HttpWorkerRequest 是一个抽象类,我猜它的托管实现会在需要时覆盖该属性。你知道这个的 IIS 实现是哪个类吗?
  • @rickschott 我猜是IIS7WorkerRequest 内部类。
  • 没有线索,那可能只是模块的一个钩子。我怀疑你会得到一个明确的答案。
  • @rickschott 和 IIS7WorkerRequest.SupportsAsyncFlush 总是返回 true。我应该看看调用堆栈。

标签: asp.net .net iis httpcontext


【解决方案1】:

所有 IIS 7.0+ 主机都会覆盖此属性以返回 true。如果正在使用自定义主机,则主机将不得不竭尽全力覆盖该属性以返回 true。例如,Cassini 主机不支持异步刷新,因此不会覆盖该属性。

tl;dr:如果您在 IIS 或 IIS Express 中运行,则可以保证这将返回 true。

【讨论】:

    【解决方案2】:

    如果支持异步刷新操作,则返回 true。否则返回false。

    【讨论】:

    • 不可能!真的吗? :) 我理解那部分,我对发生的情况很感兴趣。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-10
    • 2019-02-16
    • 2020-04-19
    • 2023-03-12
    • 2015-03-06
    • 1970-01-01
    • 2022-01-22
    相关资源
    最近更新 更多