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);
...
}
我做財產以後做錯了前兩種情況,或者這是WebApi中的錯誤?
注意:當通過IIS託管時,我還沒有嘗試過。
乾杯
本