2012-04-01 2 views
2

У меня есть небольшая служба REST, которую я запускаю через HttpSelfHostServer (ASP.Net WebApi Beta), но у меня есть некоторые проблемы десериализации данных, которые отправляются на сервер. Подпись метода заключается в следующем:HttpContent.ReadAsAsync Проблема десериализации

public HttpResponseMessage PostServers(ServerType serverType) 

метод вызывается хорошо, однако на десериализации данных, используя следующий код:

var servers = Request.Content.ReadAsAsync<List<ServerZoneInformation>>().Result; 
... 

IOException брошен с сообщением «не может получить доступ к закрытый поток ". Та же ошибка возникает при попытке десериализации код Однако я могу получить метод, чтобы работать, если я использую следующие через

XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>)); 
var servers = (List<ServerZoneInformation>)serializer.Deserialize(Request.Content.ReadAsStreamAsync().Result); 
... 

:

XmlSerializer serializer = new XmlSerializer(typeof(List<ServerZoneInformation>)); 
string data = Request.Content.ReadAsStringAsync().Result; 
using (MemoryStream ms = new MemoryStream(UTF8Encoding.UTF8.GetBytes(data))) 
{ 
    var servers = (List<ServerZoneInformation>)serializer.Deserialize(ms); 
    ... 
} 

Могу ли я делать Somthing неправильно в первых двух случаях, или это ошибка в WebApi?

Примечание: Я еще не пробовал это при размещении через IIS.

Приветствие

Бен

ответ

2

После разговора с MS человеком на сайте ASP.Net Сво ошибка в текущих бета-версии WebAPI, подробнее here. Эта проблема должна быть исправлена ​​в следующей версии WebApi.

Смежные вопросы