#asp.net-web-api #timeout #iis-express
#asp.net-web-api #тайм-аут #iis-express
Вопрос:
Вся идея состоит в том, чтобы воспроизвести ограничения, которые приложение имеет в рабочей среде в моей среде разработки (время ожидания, размер полезной нагрузки, …)
Я создал новый ASP.NET приложение web API и измените контроллер метода, чтобы он отвечал через 2 минуты ожидания.
// GET api/values
public IEnumerable<string> Get()
{
Thread.Sleep(120000);
return new string[] { "value1", "value2" };
}
Затем я изменил файл конфигурации IIS Express $(solutionDir).vsMyWebApiconfigapplicationhost.config
, чтобы добавить тайм-аут в 1 минуту:
<system.webServer>
<asp>
<session timeout="00:01:00" />
</asp>
<!-- ... -->
<location path="MyWebApi">
<system.webServer>
<asp>
<session timeout="00:01:00" />
</asp>
</system.webServer>
</location>
Безуспешно, я сделал то же самое с основным файлом конфигурации IIS Express %userprofile%DocumentsIISExpressconfigapplicationhost.config
: безуспешно.
Итак, я попытался изменить свой web.config
файл, добавив тайм-аут в 1 минуту:
<system.webServer>
<asp>
<session timeout="00:01:00" />
</asp>
По-прежнему безуспешно.
Кто-нибудь знает, как я мог воспроизвести ошибку тайм-аута с помощью ASP.NET приложение web API и IIS Express?
Комментарии:
1. Не уверен, что я понимаю это, но если вы хотите ограничить вызов API, используйте токены отмены, выполните поиск токенов отмены, вы можете установить токен на определенное время и выдать ошибку тайм-аута.
2. @Rav спасибо за ваш комментарий. Использование
CancellationTokenSource
— хорошая идея, но я ищу способ настроить все мое приложение в одном месте.