ASP.NET Core 2.0, как увеличить время ожидания запроса IIS Express в launchSettings.json - PullRequest
0 голосов
/ 25 мая 2018

У меня есть 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>

1 Ответ

0 голосов
/ 25 мая 2018

Вы неправильно поняли понятия.

launchSettings.json используется только в Visual Studio для определения способа запуска вашего веб-проекта.(Подробнее см. в моем блоге )

IIS Express по-прежнему использует web.config для чтения настроек, поскольку это единственный файл, который он понимает.

...