ASP.NET Core MVC 2.2 Внутрипроцессный хостинг - запрос на отмену CancellationToken не работает - PullRequest
0 голосов
/ 07 января 2019

Несмотря на то, что заявлено в сообщении в блоге Microsoft (раздел основного модуля ASP.NET) , я не могу настроить внутрипроцессный хостинг IIS с AspNetCoreModuleV2, чтобы установить для HttpContext.RequestAborted свойство IsCancellationRequested значение true, когда длительный XHR-запрос от веб-браузера прерывается с помощью функции abort().

Запрос XHR отменен на стороне браузера, и он хорошо виден на вкладке сети в Chrome, но CancellationToken в действии контроллера (ни HttpContext.RequestAborted) никогда не получает IsCancellationRequested свойство, установленное в true.

Файл WebSite *.csproj содержит свойства:

<TargetFramework>netcoreapp2.2</TargetFramework>
<AspNetCoreHostingModel>inprocess</AspNetCoreHostingModel>

Web.config тоже кажется правильным:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="C:\Program Files\dotnet\dotnet.exe" arguments="exec &quot;FullPathToMyWebsite.dll&quot;" stdoutLogEnabled="false" hostingModel="InProcess">
      <environmentVariables>
        <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" />
      </environmentVariables>
    </aspNetCore>
  </system.webServer>
</configuration>

Версия совместимости для services.AddMvc установлена ​​на 2,2:

.SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

Хост построен с настройками по умолчанию, как указано в документации:

public class Program
{
    public static void Main(string[] args)
    {
        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();
}

Я что-то упускаю здесь очевидное?

...