Несмотря на то, что заявлено в сообщении в блоге 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 "FullPathToMyWebsite.dll"" 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>();
}
Я что-то упускаю здесь очевидное?