У меня есть небольшая служба REST, которую я запускаю через HttpSelfHostServer (ASP.Net WebApi Beta), но у меня возникают некоторые проблемы с десериализацией некоторых данных, которые отправляются на сервер. Сигнатура метода выглядит следующим образом:
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);
...
}
Я что-то не так делаю в первых двух случаях, или это ошибка в WebApi?
Примечание: я еще не пробовал это, когда хостинг через IIS.
Приветствия
Ben