У нас есть библиотека DLL, используемая в качестве промежуточного уровня между интерфейсом нашего веб-сайта и нашей системой оформления билетов. Метод вставки в систему тикетов немного сложен для объяснения, но короткая версия заключается в том, что он медленный. Лучший сценарий, который я получил, - это время подачи 9 секунд.
Настоящая проблема заключается в том, что я могу получить это время только через приложение Windows, а не через веб-сайт ASP.NET. Я настроил для тестирования как тестовое приложение Windows, так и веб-страницу, и, хотя код копируется между ними, веб-страница последовательно отправляется в течение 17-20 секунд, а приложение для Windows - 8-11 секунд.
Что может быть причиной этого?
РЕДАКТИРОВАТЬ: В ответ на пару ответов ...
Звонок в веб-службу занимает большую часть времени, но я не могу контролировать этот веб-сервис, поскольку он предоставляется поставщиком системы продажи билетов. Мне нужно выяснить, почему веб-сервис отнимает много времени, когда он вызывается из приложения другого типа. Код в обоих случаях одинаков, и он запускает цикл, затем сообщает записанное время.
Код:
for (int i = 0; i < numIterations; i++)
{
startTimes[i] = DateTime.Now;
try
{
cvNum = Clearview.Submit(req, DateTime.Now, DateTime.Now, false);
}
catch (Exception ex)
{
exceptionCount++;
lblResult.Text += @"<br />Exception Caught: " + ex.Message + @"<br />";
}
endTimes[i] = DateTime.Now;
}
В обоих случаях это один и тот же цикл, и я отмечаю время непосредственно до и после вызова библиотеки, которая выполняет дальнейшую обработку и затем вызывает веб-службу. Но эта обработка должна быть последовательной, не так ли? Я проследил во время отладки и не заметил какой-либо задержки при получении реального вызова веб-службы ...
РЕДАКТИРОВАТЬ Снова: работая с муравьями, в обоих случаях 99,4% времени отправляется только по вызову веб-службы. Там, похоже, нет никакой разницы ... за исключением того, что по тайм-ауту веб-страница занимает больше времени, чем приложение Windows.