Desserialização JSON lança referência circular APENAS na compilação ao vivo

Eu tenho um problema estranho que eu não posso envolver minha cabeça. Eu estou tentando criar uma função de "exportação para csv" para meu aplicativo MVC4 onde o JSON relevante é passado por meio de uma chamada de ajax para meu ActionResult. O ActionResult desserializa o JSON do stringify'd (com JSON.Net), grava-o em um arquivo no formato csv e retorna o caminho do servidor para o novo arquivo. Meu callback de sucesso, em seguida, recebe o caminho e chama o URL para fazer o download.

Isso funciona bem localmente, mas no meu servidor de teste ao vivo eu recebo a seguinte exceção:

A circular reference was detected while serializing an object of type 'System.Reflection.RuntimeModule'.

O JSON (e subsequentemente os objetos para os quais eles são desserializados) são um pouco complexos. Eles vêm de um subconjunto agrupado de um DataView do SlickGrid. Eu estava recebendo exceções de referência circular quando incluí as informações agregadas para os totais de colunas (isso é relevante apenas para aqueles versados ​​no SlickGrid, não acredito que os dados transmitidos ao servidor sejam um problema), mas os removi antes de passar o JSON para o servidor. Aqui está minha estrutura de classe JSON para C #:

[Serializable]
public class Row
{
    public int id { get; set; }
    public DateTime DateCreated { get; set; }
    public int RefNo { get; set; }
    public string ClientName { get; set; }
    public string Plate { get; set; }
    public string Address1 { get; set; }
    public int? ProductID { get; set; }
    public string Product { get; set; }
    public string S1 { get; set; }
    public string S2 { get; set; }
}

[Serializable]
public class RootReportObject
{
    public bool __group { get; set; }
    public int level { get; set; }
    public int count { get; set; }
    public string value { get; set; }
    public string title { get; set; }
    public int collapsed { get; set; }
    public List<Row> rows { get; set; }
    public object groups { get; set; }
    public string groupingKey { get; set; }
}

A única coisa que estou pensando é que, devido à maneira como os dados são estruturados, a List <> de linhas no objeto raiz pode estar lançando as referências circulares durante a desserialização, porque um grupo não tem necessariamente referências de linha exclusivas.

Minha pergunta é por que isso funciona bem localmente? Eu não tenho ideia do que estou perdendo.

questionAnswers(1)

yourAnswerToTheQuestion