我们有一个ASP.NET Core 2.x应用程序,它实现了在另一个(基于Java)服务器/应用程序之前充当代理的自定义中间件。此应用程序/中间件的客户端在服务器请求完成之前经常中止/取消其请求是很常见的。
我们已将此应用程序部署到IIS(作为反向代理)并在Kestrel上运行。 Prior to Core 2.x Kestrel had a bug that caused HttpContext.RequestAborted
to always be false
(其他相关问题here)...显然已在2.x中修复(我已经能够确认)。
但是,似乎在Kestrel前运行IIS时,它不会将请求中止转发给Kestrel,RequestAborted
仍然始终false
有没有办法让RequestAborted
在此配置中工作(或者如果没有,还有其他任何方式来检测它)?
简单复制回购:https://github.com/mikeomeara1/RequestAbortRepro
更新
This Comment似乎表明了一个已知问题,但它在很大程度上还不清楚
This Question似乎也是相关的,但对我而言,它并不完全明显与它直接相关(至少它没有用这些术语拼写)。< / p>
@spender - 如果我理解正确,标题比较为here。如果没有,请告诉我,无论你想看到什么,我都会得到你。
茶叶似乎表明了一个已知的问题。所以,问题是;有办法解决这个问题吗?我们刚刚经历了(一次非常痛苦的)1.1到2.x升级,希望这个问题得到解决,让我们的服务器闯入另一个月/季度/年让我们非常关注这一点。我们正在开发的系统在数量上有很大的扩展。
所以,欢迎任何变通方法,黑客或疯狂的想法。