ASP.NET WebAPI net::ERR_CONNECTION_TIMED_OUT (Ошибка при выполнение запроса fetch)
На некоторых компьютерах возникает ошибка при выполнение запросов GET, POST, DELETE (другие не проверялись) к WebAPI ASP.NET Core. Ошибка net::ERR_CONNECTION_TIMED_OUT (ответ не содержит ничего кроме самой ошибки). Проблема наблюдается только на некоторых устройствах (на моем пк, например, все работает корректно). API размещено на сервере IIS.
В API используется CORS. API размещено на условном хосте https://api.myhost.ru, а фронт, откуда отправляется запрос, на https://sub1.myhost.ru.
builder.Services.AddCors(options => options.AddPolicy("DefaultPolicy", builder =>
{
builder.WithOrigins("https://sub1.myhost.ru", "https://sub2.myhost.ru");
builder.AllowAnyMethod();
}));
Пример одного из методов контроллера, при запросе которого возникает ошибка:
[HttpGet]
public async Task<IActionResult> GetTaskAttachments([BindRequired, FromQuery(Name = "task-id")] Guid taskId)
{
try
{
var taskAttachments = await context.TaskAttachments.Where(taskAttachment => taskAttachment.TaskId == taskId).ToListAsync();
return Ok(taskAttachments);
}
catch (Exception ex)
{
logger.LogError(ex.UseRequest(Request), "{message}", ex.Message);
return StatusCode(500, new { Exception = ex.GetType().ToString(), ex.Message });
}
}
Вот так я отправляю запрос к API:
fetch(`https://api.myhost.ru/public/task/attachments?task-id=${model.get('id')}&api-version=2.0`).then(res => {
res.json().then(data => {
...
});
});
Вот содержимое файлов web.config веб-сайта и конкретного приложения соответственно:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<remove name="WebDAV" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="*" type="System.Web.Handlers.TransferRequestHandler" resourceType="Unspecified" requireAccess="Script" preCondition="integratedMode,runtimeVersionv4.0" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
</handlers>
</system.webServer>
</configuration>
.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\PublicApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 15B5E1A2-3903-4840-9AAF-46030CE5A314-->