我们有一个 ASP.NET Core 2.x 应用程序,它实现了自定义中间件,充当另一个(基于 Java 的)服务器/应用程序前面的代理。在服务器请求完成之前,此应用程序/中间件的客户端经常中止/取消他们的请求是很常见的。
我们已将此应用程序部署到 IIS(作为反向代理)并在 Kestrel 上运行。在 Core 2.x 之前,Kestrel 有一个错误,它HttpContext.RequestAborted总是导致false(这里有其他相关问题)......这显然在 2.x 中得到了修复(我已经能够确认)。
但是,似乎在 Kestrel 前面运行 IIS 时,它不会将请求中止转发到 Kestrel,RequestAborted并且仍然总是false
有什么方法可以RequestAborted在此配置中工作(或者如果没有,则可以通过任何其他方式检测它)?
简单复制仓库:https : //github.com/mikeomeara1/RequestAbortRepro
更新
此评论似乎表明了一个已知问题,但在多大程度上尚不清楚
这个问题似乎也是相关的,但对我来说,它的直接关系并不完全明显(至少它没有用这样的术语来说明)。
@spender - 如果我理解正确,标题比较在这里。如果没有,请告诉我,你想看什么我都给你。
茶叶似乎表明了一个已知问题。所以,问题是;有没有办法解决这个问题?我们刚刚经历了(一个非常痛苦的)1.1 到 2.x 的升级,希望这个问题能得到解决,让我们的服务器再运行一个月/季度/年让我们非常担心这一点。我们正在开发的系统在数量上大大增加。
因此,欢迎任何变通方法、黑客或疯狂的想法。