Как понять пробел Azure Application Insight в деталях транзакции профилировщика
Я пытаюсь понять, почему некоторые страницы нашего приложения загружаются так долго.
Это веб-приложение.NET Core MVC. Он работает хорошо и быстро локально, но после развертывания в Azure некоторые страницы в случайном порядке загружаются очень долго.
Используя профилировщик Application Insights, я вижу в деталях транзакции, что все зависимости загружаются за несколько миллисекунд, а затем ничего не происходит в течение более 30 секунд, прежде чем транзакция разрешится.
Есть ли какой-нибудь диагностический инструмент (или я где-то пропускаю панель), чтобы определить, почему этот длительный период бездействия удерживает запрос?
РЕДАКТИРОВАТЬ 1
Вот псевдокод действия контроллера
[HttpGet]
public ActionResult Details(int id)
{
try
{
CustomerEntity customer = new CustomerBc().GetCustomer(id);
if (customer == null) return StatusCode(StatusCodes.Status500InternalServerError);
Dictionary<long, DeviceEntity> devices = new DeviceBc().GetDevicesByCustomer(id);
Dictionary<int, PermissionEntity> permissions = new PermissionBc().GetPermissionsByCustomer(id);
Dictionary<long, AccessTokenEntity> accessTokens = new AccessTokenBc().GetAccessTokensByCustomer(customer.CustomerId);
Dictionary<short, RegionEntity> regions = new RegionBc().GetRegionsByCustomer(customer.CustomerId);
ViewBag.Title = customer.Name;
return View("Details", new CustomerDetailsViewModel
{
Customer = customer,
Devices = devices,
Permissions = permissions,
AccessTokens = accessTokens,
Regions = regions
});
}
catch (Exception e)
{
Trace.TraceError(e.Message);
return StatusCode(StatusCodes.Status500InternalServerError);
}
}