У меня есть приложение .net MVC с некоторыми значениями Controllers
и некоторыми значениями ApiControllers
.
. ApiControllers только недавно были запущены, и в IIS некоторые запросы продолжаются, по-видимому, бесконечно (не из WebApi).в порядке).Это приводит к максимальной загрузке ЦП на серверах.
Я понимаю, что мне нужно решить проблему, связанную с тем, что они работают так долго, но я бы хотел, чтобы они остановили тайм-аут, если они это сделают, и я смогу »не понять, как это сделать.
Серверы как экземпляры AWS Windows за балансировщиком нагрузки AWS.Балансировщик нагрузки имеет время ожидания 30 с.
Я настроил IIS executionTimeout
на 30 с (неясно, ограничивает ли это синхронные запросы WebApi, но, по-видимому, нет).
У меня вопрос, как я могу ограничить время выполнения / запроса запроса WebApi?
Для справки, вот пример конечной точки:
public class ProfileController : ApiController
{
[HttpPost]
[Route("~/api/profile/delete/{entryId}")]
public ApiResult Delete(int entryId)
{
var sharedContent = _sharedContentRepository.Get(entryId);
if (sharedContent == null)
{
var response = new ApiResult(false, "Shared Content not found");
return response;
}
var currentUser = _userService.CurrentUser();
if (currentUser == null || currentUser.Id != sharedContent.SharedBy.Id)
{
return new ApiResult(false, "Not user's shared content to delete");
}
sharedContent.Hidden = true;
return new ApiResult(true);
}
...