Как я могу ограничить время выполнения / запроса (синхронного) запроса .net WebApi? - PullRequest
0 голосов
/ 08 июня 2018

У меня есть приложение .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);
}
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...