У меня есть API-интерфейс ASP.NET Core 2.0, который я развертываю в службе приложений Azure.Это работало нормально до недавнего времени, когда мне пришлось обрабатывать запрос, который занимал более 2 минут, и я получил 502 Bad Gateway с указанием
"The specified CGI application encountered an error and the server terminated the process".
Это постоянно происходит, когда я нажимаю на 2-минутную отметку наэтот процесс.
Мой диагностический файл журнала говорит:
018-05-25 02:07:01.462 +00:00 [Error] Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware: An unhandled exception has occurred while executing the request
System.Threading.Tasks.TaskCanceledException: A task was canceled.
Я работаю в предположении, что это проблема тайм-аута, потому что она всегда находится на отметке 2 минуты, и я знаю, что запрос занимает больше времени.чем 2 минуты, чтобы закончить.Поэтому я изучал, как увеличить время ожидания, и нашел несколько сообщений в SO, в которых говорилось об использовании файла applicationHost.xdt, который помещался в корень папки Site для сайта.Я использую этот XML;
<?xml version="1.0"?>
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<system.applicationHost>
<webLimits xdt:Transform="SetAttributes(connectionTimeout)" connectionTimeout="00:05:00" />
</system.applicationHost>
</configuration>
Когда я загружаю его, используя консоль отладки Kudu, в корень папки Site для моего слота развертывания, который я использую, чтобы проверить мой API, а затем посмотреть на файл преобразованияЯ вижу следующее:
2018-05-24T19:34:19 Start 'site' site extension transform
2018-05-24T19:34:19 StartSection Executing SetAttributes (transform line 4, 16)
2018-05-24T19:34:19 on /configuration/system.applicationHost/webLimits
2018-05-24T19:34:19 Applying to 'webLimits' element (no source line info)
2018-05-24T19:34:19 Set 'connectionTimeout' attribute
2018-05-24T19:34:19 Set 1 attributes
2018-05-24T19:34:19 EndSection Done executing SetAttributes
2018-05-24T19:34:19 Successful 'D:\home\site\applicationHost.xdt' site extension transform
, который, на мой взгляд, успешно применил преобразование XDT.
Однако даже после перезапуска базовой службы приложений и соответствующего слота развертывания.Я все еще получаю сообщение об ошибке.
Итак, я использую неправильную настройку тайм-аута?
Когда я смотрю на файл web.config в папке slots sites / wwwroot, он содержит только это ...
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\Mypp.dll"
stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
Я ожидал увидеть информацию о времени ожидания соединения, которое былов файле XDT я применил.Итак, возможно, это не тот файл web.config?
Я не эксперт по Azure, и на данный момент я чувствую, что теряю время, поэтому я хотел проверить, есть ли у кого-нибудь предложения.