У меня есть простой веб-интерфейс API, который возвращает список контактов:ASP.NET проблема производительности Web API
public class ContactsApi : ApiController
{
public List<Contact> GetContacts()
{
Stopwatch watch = new Stopwatch();
watch.Start();
// Doing some business to get contacts;
watch.Stop();
// The operation only takes less than 500 milliseconds
// returning list of contacts
}
}
Как я использовал Stopwatch
для проверки данных-поисковой работы, это очевидно, что она занимает меньше Второй. Однако, когда я делаю запрос на действие GetContacts
через браузер Chrome, для возврата данных требуется от 4 до 5 секунд.
Видимо, что задержка не имеет ничего общего с моим кодом данных поиска. Мне кажется, что веб-API работает медленно. Но я не знаю, как отлаживать и отслеживать это.
Есть ли какая-либо утилита для регистрации времени для конвейера процесса HTTP-запроса ASP.NET? Я имею в виду, что-то вроде Navigation Timing, чтобы показать, что каждое событие произошло в какое время?
Вы пробовали [fiddler] (http://fiddler2.com/)? – amrswalha
Думаю, вам нужно сузить место, где оно замедляется. Это может быть ASP.NET, это может быть IIS, это может быть на сетевом уровне. Вы пытались подключить отладчик и поставить точку останова в первой строке функции? Если нет, сделайте это и посмотрите, называется ли это через 4,5 секунды или сразу. 4,5 секунды - это долгое время, звучит сетевая связь со мной. – Rocklan
@amrswalha, скрипач здесь не поможет. Проблема на сервере. OP говорит о ASP.NET HTTP Process Pipeline. –