У нас есть приложение ASP.NET Core 2.x, которое реализует пользовательское промежуточное ПО, которое действует как прокси перед другим (на основе Java) сервером / приложением. Обычно клиенты этого приложения / промежуточного программного обеспечения часто прерывают / отменяют свой запрос до того, как запрос сервера будет выполнен.
Мы развернули это приложение на IIS (в качестве обратного прокси-сервера) и работаем на Kestrel. До Core 2.x в Kestrel была ошибка, из-за которой HttpContext.RequestAborted
всегда был false
(другой связанный вопрос здесь ) ..., который, по-видимому, был исправлен в 2.x (что я смог подтвердить).
Однако, похоже, что при запуске IIS перед Kestrel он не перенаправляет запрос на прерывание через Kestrel, и RequestAborted
равно все еще всегда false
Есть ли способ заставить RequestAborted
работать в этой конфигурации (или любой другой способ обнаружить его, если нет)?
Простая репродукция репо: https://github.com/mikeomeara1/RequestAbortRepro
UPDATE
Этот комментарий , кажется, указывает на известную проблему, но в значительной степени неясно, в какой степени
Этот вопрос , похоже, также связан, но опять же для меня не совсем очевидно, что он напрямую связан (по крайней мере, в таких терминах он не прописан).
@ spender - Если я вас правильно понял, сравнение заголовков здесь . Если нет, дайте мне знать, я дам вам все, что вы хотите увидеть.
Кажется, чайные листья указывают на известную проблему. Итак, вопрос в том; Есть ли способ обойти это? Мы только что прошли (очень болезненное) обновление 1.1 до 2.x в надежде на то, что эта проблема будет решена, и позволить нашему серверу работать в течение еще одного месяца / квартала / года - нас это очень беспокоит. Система, над которой мы работаем, значительно расширяется.
Итак, любые обходные пути, взломы или сумасшедшие идеи приветствуются.