Kestrel + IIS反向代理请求未被触发

时间:2018-05-01 00:56:25

标签: c# iis asp.net-core kestrel-http-server

我们有一个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升级,希望这个问题得到解决,让我们的服务器闯入另一个月/季度/年让我们非常关注这一点。我们正在开发的系统在数量上有很大的扩展。

所以,欢迎任何变通方法,黑客或疯狂的想法。

1 个答案:

答案 0 :(得分:3)

这是已知问题,尚未解决。参见https://github.com/aspnet/AspNetCoreModule/issues/38