Для меня это была проблема с круговой привязкой.
Принятый ответ не сработал для меня, потому что он изменяет только поведение средства форматирования JSON, но я получал XML, когда вызывал службу из браузера.
Чтобы исправить это, я отключил XML и заставил возвращать только JSON.
В файле Global.asax поместите следующие строки вверху вашего метода Application_Start:
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
GlobalConfiguration.Configuration.Formatters.Remove(GlobalConfiguration.Configuration.Formatters.XmlFormatter);
Теперь будут возвращаться только результаты в формате JSON. Если вам нужны результаты в формате XML, вам нужно будет найти другое решение.
InnerException
свойство исключения сериализации, чтобы узнать, что именно привело к сбою сериализации.