Как я могу повысить производительность вызова веб-службы из Windows 2008 Server? - PullRequest
0 голосов
/ 04 мая 2011

Я пытаюсь помочь коллеге здесь.Мы используем одну и ту же кодовую базу, однако я использую Win7 Ultimate и она Windows Server 2008. Когда я вызываю веб-сервис, используя класс Stopwatch, он принимает мой вызов около 320 мс, когда она делает точно такой же вызов с той же полезной нагрузкой и т. Д.... это занимает около 3500 мс.Есть идеи, почему это происходит?Этот код запускает XQuery для базы данных XML ...

 using (MarkLogicHttpReader reader = (MarkLogicHttpReader)cmd.ExecuteHttpReader())
 {
      var watch = Stopwatch.StartNew();
      response.Xml.Value = reader.GetXml();
      watch.Stop();
      Debug.WriteLine("The call took : {0} ms", watch.Elapsed.TotalMilliseconds);
      response.Xml.HasData = HasData(response.Xml.Value);
  }

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

1 Ответ

0 голосов
/ 04 мая 2011

Я бы сделал пару вещей.

Сначала я попытался бы измерить время, необходимое для вызова ExecuteHttpReader. Было бы интересно посмотреть, как это меняется между вами и вашим коллегой.

Во-вторых, я бы посмотрел на сетевой аспект. В частности, существует ли интернет-прокси между вами и службой? Прокси-сервер может быть настроен по-разному между настольным компьютером и сервером.

Наконец, да, используйте Fiddler для просмотра сетевого трафика в медленном случае. Посмотрите, где проблема производительности.

...