2014-06-06 4 views
3

Странная ошибка.Ошибка API-запроса веб-API во второй раз

var xmlDoc = new System.Xml.XmlDocument(); 
xmlDoc.Load(this.Request.Content.ReadAsStreamAsync().Result); 

var xmlDoc1 = new System.Xml.XmlDocument(); 
xmlDoc1.Load(this.Request.Content.ReadAsStreamAsync().Result); 

В WEB API, я пытаюсь загрузить данные POST, чтобы xmlXoc он работает хорошо

При попытке загрузить его снова, чтобы xmlDoc1 (новой переменной), я получаю ошибку Root Element missing.

Я вижу, что ReadAsStreamAsync является Read-Only-Stream, но почему ошибка на последней строке?

ответ

3

Сохраните Stream в локальной переменной и сбросьте его в начало при чтении его во второй раз.

var stream = this.Request.Content.ReadAsStreamAsync().Result 

var xmlDoc = new System.Xml.XmlDocument(); 
xmlDoc.Load(stream); 

// RESET 
stream.Position = 0; 
var xmlDoc1 = new System.Xml.XmlDocument(); 
xmlDoc1.Load(stream); 
+0

Спасибо :) Итак, мы должны установить его положение в 0, чтобы мы могли прочитать его снова .. Теперь поняли .. –