web.config maxJsonLength问题

我尝试从一侧使用HttpClient.PostAsJsonAsync发送大型消息json(带图像),并尝试使用Microsoft.AspNet.Mvc version =“5.2.3”在Controller中获取数据。

当我发送小消息时,一切都是安全的。

移动代码详情:

private async Task<HttpResponseMessage> Method<TRequest>(string url, TRequest request,
        IEnumerable<KeyValuePair<string, string>> headers)
      {
        using (var client = new HttpClient(_httpClientHandlerFactory.CreateHandler()))
        {
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            client.DefaultRequestHeaders.CacheControl = new CacheControlHeaderValue { NoCache = true };
            AddHeadersToClient(client, headers);

            var response = await client.PostAsJsonAsync(url, request);
            ...  

另一方面:

   public class MyController: Controller
   {
    [HttpPost]
    public ActionResult EmailBody(string siteShortName, string templateName, RequestAcceptType acceptType, [DynamicJson] dynamic model) 
    {
        //Some logic
        return View(viewPath, model);
    }
...

当发送消息时我得到

在使用JSON JavaScriptSerializer进行序列化或反序列化期间出错。 字符串的长度超过maxJsonLength属性中设置的值。

根据文章我可以在web.config中为maxJsonLength设置无限长度吗? 我尝试用不同的方式解决问题:

  • 在web.config部分添加
  • 在控制器方法中尝试此代码
  • 尝试在Global.asax中添加这样的内容
  • 在所有情况下,我都有同样的问题。


    奇怪的是获得最大长度,但是你使用的是base64图像吗? 根据图像数量的不同,您可以轻松获得最大Json长度。

    我可以建议一个替代方案发送带有图像base64的大型电子邮件,您可以在html中创建视图并使用剃刀引擎进行解析。

    string view = Server.MapPath("~/Views/_YourView.cshtml");
    string template = System.IO.File.ReadAllText(view);
    body = Razor.Parse(template, youmodel);
    
    链接地址: http://www.djcxy.com/p/42059.html

    上一篇: web.config maxJsonLength issue

    下一篇: Can't set maxJsonLength