Почему вызывает веб-сервис медленнее с веб-страницы?

У нас есть DLL, используемая в качестве промежуточного слоя
между нашим интерфейсом веб-сайта и нашей системой продажи билетов.
Метод вставки в систему продажи билетов немного сложно объяснить,
но короткая версия заключается в том, что она медленная. Лучший
сценарий, который я получил, - это время подачи в 9 секунд.

Реальная проблема заключается в том, что я могу получить это
время только через приложение Windows, а не через веб-сайт ASP.NET.
Я установил тестовое приложение Windows и веб-страницу для
тестирования, и даже несмотря на то, что код копируется между ними,
веб-страница последовательно отправляется через 17-20 секунд, в то
время как приложение Windows получает 8-11 секунд.

Что может быть причиной этого?

EDIT: В ответ на пару ответов ...

Вызов веб-службы занимает большую часть времени, но я не
контролирую этот веб-сервис, поскольку он предоставляется
поставщиком системы продажи билетов. Мне нужно выяснить, почему
веб-служба занимает разные промежутки времени, когда она называется
формой другого типа приложения. В обоих случаях код абсолютно
одинаковый, и он запускает цикл, а затем сообщает о времени,
записанном.

Код:

```
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 += @"  
Exception Caught: " + ex.Message + @"  
";                    
            }

            endTimes[i] = DateTime.Now;
    }

```

Это тот же цикл в обоих случаях, и я отмечаю время до и после
вызова библиотеки, которое выполняет дальнейшую обработку, а затем
вызывает веб-службу. Но эта обработка должна быть последовательной,
не так ли? Я проследил во время отладки и не видел никакой задержки
до получения фактического вызова веб-службы ...

EDIT Again: работа с муравьями, в обоих случаях 99,4% времени
отправляется только по вызову веб-службы. Там нет никакой разницы
... кроме того, что при истечении времени веб-страница занимает
больше времени, чем приложение Windows.

Потенциально местоположение веб-службы по отношению к
веб-серверу может иметь проблему. Кроме того, структура страницы и
другая обработка внутри вашего веб-интерфейса могут влиять на то,
сколько времени потребуется на обработку приложения.

Поскольку упомянутые элементы ведения журнала с обеих сторон -
отличная идея, если это не дает вам то, что вам нужно, вы можете
попробовать профилировщик производительности, такой как Ants
Profiler by Red Gate, который может помочь идентифицировать линию,
метод или класс, который использует большую часть времени.



Перепишите свое приложение с обеих сторон журналами - это
покажет вам, где время идет. Если это не поможет, используйте
[Wireshark](https://www.wireshark.org/) для отслеживания сетевой
активности.



Вы работаете на одной машине? Является ли средний уровень,
который вы вызываете, расположенным на удаленной машине?
Продолжительность времени, о которой вы говорили, смутно ощущается
как проблема с таймаутом DNS, при открытии соединения накладывается
штраф за первый (нижний/неверный) ответ DNS на таймаут. Вы уверены,
что любой файл конфигурации/var, указывающий DLL на средний
уровень, одинаковый в обеих вызовах?

Во-вторых, предлагаю использовать Wireshark, чтобы узнать, что
происходит. Вы можете, по крайней мере, убедиться, что время
обработки бэкэнда (должно быть, так или иначе) одинаково ...