Я совершенно потерялся в том, что может быть причиной этого.
У меня есть приложение ASP.Net MVC 4 RC и набор контроллеров веб-API. Я пытаюсь вернуть объект, содержащий набор дочерних объектов в IList. Всякий раз, когда я запрашиваю объект, я получаю ошибку 500 в браузере без заметного исключения в отладчике. Я попытался поместить обработчик Application_Error в global.asax, и там также не было обнаружено никаких ошибок.
Неважно, является ли список фактическим отношением к базе данных или просто жестко запрограммированным списком строк, в любом случае запрос не будет выполнен. Если я установлю список равным нулю, запрос будет успешным.
Если я удалю список, запрос завершится успешно, и я получу XML (или JSON) представление объекта.
Я также пробовал эту линию -
GlobalConfiguration.Configuration.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always;
Чтобы зафиксировать фактическое исключение и ничего не вернуть.
Вот текущий объект
public class Authority : IEntity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual string Address1 { get; set; }
public virtual string Address2 { get; set; }
public virtual string City { get; set; }
public virtual string County { get; set; }
public virtual string State { get; set; }
public virtual string ContactPostalCode { get; set; }
//public virtual IList<PostalCode> PostalCodes { get; set; }
public virtual IList<string> RandomTrash { get; set; }
public VPA()
{
//PostalCodes = new List<PostalCode>();
RandomTrash = new List<string> {"foo"};
}
}
Обратите внимание на закомментированную коллекцию PostalCodes — это реальное отношение базы данных «многие ко многим». Я закомментировал его и заменил фиктивной коллекцией «RandomTrash», и сбой, похоже, тот же.
У меня такое чувство, что это какой-то сбой сериализации, но я не могу понять, как этого избежать. Если это поможет, я использую NHibernate в качестве ORM.
Кто-нибудь видел это?
IListнаIEnumerableилиIQueryable, чтобы увидеть, сохраняется ли ошибка? - person Szilard Muzsi   schedule 09.07.2012