У меня есть ASP.NET Core 2.0 API, который я пытаюсь отладить с помощью VS2017 / IIS Express на своем локальном компьютере с Win10, и у меня возникает проблема с IIS Express, так как для него установлен тайм-аут по умолчанию, равный 2минут до того, как мой процесс может завершиться в моем API, таким образом возвращая сообщение 502.3 - Bad Gateway.
Я продолжаю процесс в моем API и завершается через 3 минуты и 50 секунд.Итак, мне нужно увеличить время ожидания запроса для IIS Express.
Большинство примеров, которые я нашел в Интернете, говорят об использовании web.config, например;
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<aspNetCore requestTimeout="00:20:00" processPath="dotnet" arguments=".\MyAPI.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</configuration>
.... но из того, что я понимаю, API ASP.NET Core 2.0, работающий на локальном IIS Express, не использует web.config из моего проекта, а полагается на файл launchSettings.json в проекте.Тем не менее, я не смог найти в Интернете ничего, что говорило бы о launchSettings, имеющем какие-либо значения настроек для увеличения тайм-аутов по умолчанию.
Просто чтобы подтвердить, я попытался поместить файл web.config, подобно тому, что я перечислил выше, в папке wwwroot моего проекта, но это не имело никакого значения.Это сработало на моем развернутом решении в Azure ( см. Соответствующую статью о переполнении стека), но не в IIS Express на моем локальном устройстве.
Кажется, что это должно быть простой задачей, но такДо сих пор мне не повезло найти решение.
Есть идеи?
РЕДАКТИРОВАТЬ 5/27/18 - РЕШЕНИЕ
IIS Express с ASP.NET Core 2.0 использует файл, аналогичный web.config, называемый applicationhost.config, которыйнаходится в корневой папке проекта / .vs / config.Этот файл имеет раздел
<configuration><Location> ... <location</configuration>
, аналогичный тому, что я перечислил ниже.В этом разделе есть узел
<aspNetCore ... />
, где я смог применить значение requestTimeout.Установив это, моя система разработки смогла преодолеть 2-минутный тайм-аут по умолчанию.
<location path="MyAPI">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>
<httpCompression>
<dynamicCompression>
<add mimeType="text/event-stream" enabled="false" />
</dynamicCompression>
</httpCompression>
<aspNetCore requestTimeout="00:20:00" processPath="%LAUNCHER_PATH%" arguments="%LAUNCHER_ARGS%" forwardWindowsAuthToken="false" stdoutLogEnabled="false" />
</system.webServer>
</location>