Как я могу обрабатывать большие входные данные JSON от Postmark в моем приложении MVC?

Это связано с этим вопросом, но в данном случае это не то, что я возвращаю, а скорее модель привязка. Я использую Postmark для обработки входящих писем, которые отправляются на страницу с полезной нагрузкой JSON.

У меня есть модель, как показано ниже, и действие, которое принимает эту полезную нагрузку JSON (опубликованную с помощью application/json) и обрабатывает ее.

public class EmailModel
{
    public IDictionary Headers { get; set; }
    public string From { get; set; }
    public string Cc { get; set; }
    public string HtmlBody { get; set; }
    public string TextBody { get; set; }
    public string ReplyTo { get; set; }
    public string Tag { get; set; }
    public string To { get; set; }
    public string MessageID { get; set; }
    public string MailboxHash { get; set; }
    public string Subject { get; set; }
    public List Attachments { get; set; }
}

public class Attachment
{
    public string Content { get; set; }
    public int ContentLength { get; set; }
    public string ContentType { get; set; }
    public string Name { get; set; }

}

Это прекрасно работает для небольших вложений, но все, что превышает значение свойства maxJsonLength по умолчанию, вызывает ошибку при десериализации. («Ошибка во время сериализации или десериализации с использованием JSON JavaScriptSerializer. Длина строки превышает значение, установленное в свойстве maxJsonLength».) Поскольку я хочу принимать вложения изображений, это означает, что большинство изображений не работают.

Я пытался обновить файл web.config, но, согласно другим темам, это не помогает для контроллеров MVC. Я полагаю, что, вероятно, смогу сделать то, что было упомянуто в пользовательском IModelBinder, но я борюсь с тем, как перехватить десериализацию. (Другими словами, это все еще не удается, потому что десериализация уже произошла).

Есть предложения? Я уверен, что это просто какая-то глупость, которую мне не хватает....

5
задан Community 23 May 2017 в 10:24
поделиться