我正在通过互联网向400个XDocument.Load()请求类似但唯一的URI的线程。每次我这样做时,其中32个请求会导致“Root元素丢失”。例外。每次导致异常时都会有不同的请求,但总有32个,这有点可疑。 XML的长度总是不同但没有一个是巨大的。 ~16kb。
XDocument.Load()中是否存在导致此错误的某种限制?或者可能是底层的WebRequest(如果这是正在使用的)或内部的XmlReader?或者也许是线程?我正在添加QueueUserWorkItem以将请求添加到线程池。
有什么想法吗?
非常感谢。
答案 0 :(得分:1)
我个人怀疑这是XDocument。我要做的第一件事就是连接一个像Fiddler这样的网络工具来查看线路上的内容。特别是我想知道你是否被NLB或类似的人扼杀了。
如果没有明显的东西,我会把它分成步骤;下载为XML(可能是WebClient DownloadString),然后在本地解析XML。这里的优点是你可以添加一些try / catch,这样如果/当它失败时你记录你得到的响应字符串,进行分析。
如果你这样做,并且它开始表现,那么这可能暗示了XDocument.Load中的一个错误;同样,如果你这样做并且它失败但所有响应都是格式良好的XML,那么类似 - Parse中的一个错误。但它也应该排除(或识别)与网络相关的原因。
答案 1 :(得分:0)