O que acontece entre clicar em um botão e o método Javascript realmente em execução?

Eu tenho um aplicativo Web ASP.NET usando MVC 4, jquery e os controles Kendo da Telerik.

Eu tenho o seguinte na minha página da web:

<input id="cmdSaveToFile" title="Save To File" class="button" type="button" value="Save To File" onclick="SaveToFile();" tabindex="2" />

No entanto, se eu definir um ponto de interrupção no meu arquivo Javascript em queSaveToFile() é definido, o ponto de interrupção não é atingido. Esse método deve enviar uma solicitação ajax ao servidor, que criará um arquivo e o armazenará em uma variável de sessão para download posterior.

Os logs de erro no servidor citam este erro:

Erro durante a serialização ou desserialização usando o JSON JavaScriptSerializer. O comprimento da cadeia excede o valor definido na propriedade maxJsonLength.

Eu olhei para estas perguntas de SO para esse erro específico:

Exceção MaxJsonLength no ASP.NET MVC durante JavaScriptSerializer

Posso definir um comprimento ilimitado para maxJsonLength no web.config?

Adicionei o conteúdo da resposta aceita ao meu web.config, mas isso não resolveu o problema. Não consigo definir programaticamente oJsonResult.MaxJsonLength propriedade porque não tenho ideia do que está acontecendo entre clicar no botão e o método que especifiquei no arquivo de exibição na verdade em execução. Usando o Visual Studio + IE, não consigo quebrar em nenhum lugar; não no controlador e não no JS.

Se eu usar o Chrome, nos "Pontos de interrupção do ouvinte de eventos" de suas ferramentas de desenvolvimento, posso quebrá-lo com o mouse para cima / baixo / clique, mas todo o jquery que é executado é completamente ilegível para mim. O que poderia estar fazendo sob o capô que causaria esse erro?

Editar Para esclarecer, a página da Web em questão simplesmente contém uma caixa de texto e 2 botões: Salvar em arquivo e Fechar. Se você clicar em Salvar em arquivo, o software gravará o conteúdo da caixa de texto em um arquivo RTF e apresentará o arquivo ao usuário para download. Esta caixa de texto contém um relatório de erro após o upload de um arquivo e a tentativa de analisá-lo. Se eu carregar e analisar um arquivo pequeno, ele se comportará corretamente. É somente quando eu carrego arquivos muito grandes que cria uma grande quantidade de erros que isso não funciona mais (porque o relatório de erros é muito longo para JSON) ... Mas se meu ponto de interrupção noSaveToFile() não é acionado, então o que diabos está fazendo?

questionAnswers(1)

yourAnswerToTheQuestion