У меня возникла проблема с моей службой приложений MVC, развернутой в Azure. Мой метод действия MVC получает запросы и, в зависимости от параметров в строке запроса, выполняет перенаправление на внешние URL-адреса. Обычное время отклика составляет миллисекунды, но иногда бывают запросы, которые требуют большего времени отклика:
Метод действия очень прост, и в нем не так много логики, поэтому его можно резюмировать следующим образом:
public ActionResult performRedirect(string id)
{
System.Diagnostics.Trace.TraceInformation("start");
if (id == "1")
return Redirect("http://URLA");
else if (id == "2")
return Redirect("http://URLB");
else
return Redirect("http://URLC");
}
Мое приложение использует ApplicationInsights, поэтому я провел анализ этого и обнаружил, что всякий раз, когда есть «медленные» запросы, возникает своего рода задержка между временем обработки запроса методом действия и «запуском» диагностического отслеживания (до 10 секунды!).
Мой вопрос: почему это происходит? это из-за увеличения количества запросов к действию, которым нельзя управлять, и поэтому входящая очередь должна быть очищена? следует ли увеличить производительность ресурса (сейчас я использую S1 с двумя экземплярами)?