Ограничения нескольких запросов XDocument.Load (uri)? - PullRequest
0 голосов
/ 15 января 2011

Я выполняю потоки чуть менее 400 запросов XDocument.Load () к аналогичным, но уникальным URI через Интернет Каждый раз, когда я делаю это, 32 запроса вызывают «Корневой элемент отсутствует». исключение. Это разные запросы каждый раз, которые вызывают исключение, но всегда есть 32, что немного подозрительно. XML всегда различается по длине, но ни один не является огромным <~ 16 КБ. </p>

Есть ли какое-то ограничение в XDocument.Load (), которое вызывает эту ошибку? Или, может быть, основной WebRequest (если это то, что используется) или внутренний XmlReader? Или, возможно, поток? Я добавляю QueueUserWorkItem для добавления запросов в пул потоков.

Есть идеи?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 15 января 2011

Лично я сомневаюсь, что это XDocument. Первое, что я хотел бы сделать, это подключить сетевой инструмент, такой как Fiddler, чтобы увидеть, что произошло по проводам. В частности, мне интересно, если вас душит NLB или что-то подобное.

Если бы там не было ничего очевидного, я бы разбил его на шаги; загрузить как XML (возможно, WebClient DownloadString), а затем проанализировать XML локально. Преимущество здесь в том, что вы можете добавить несколько вариантов try / catch, чтобы в случае неудачи вы записали полученную строку ответа для анализа.

Если вы сделаете это, и он начнет себя вести, то это может указывать на ошибку в XDocument.Load; Точно так же, если вы делаете это, и это терпит неудачу, но все ответы были правильно сформированы в XML, то аналогично - ошибка в Parse. Но это также должно исключать (или определять) связанную с сетью причину.

0 голосов
/ 22 февраля 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...