JsonValueProviderFactory 抛出“请求太大”

2024-04-17

我收到一个异常,即 JSON 请求太大而无法反序列化。

它来自 JsonValueProviderFactory......

MVC 应用程序当前有一个使用 Json.Net 的自定义模型绑定器,它在反序列化 json 数据时没有问题。但是我假设默认的 JSON 值提供程序出现问题?或者有一些奇怪的限制内置其中?

这可能与最新版本的 MVC4 有关,因为使用以前版本的 MVC4 时,大量 JSON 没有问题。

那么,有没有办法改变实际json值绑定器的设置呢?

通过去http://haacked.com/archive/2011/06/30/whatrsquos-the-difference- Between-a-value-provider-and-model-binder.aspx http://haacked.com/archive/2011/06/30/whatrsquos-the-difference-between-a-value-provider-and-model-binder.aspx

我的印象是,这是一些自定义的东西,将它变成了字典......我找不到任何与之相关的源代码,或者是否有任何我可以更改的设置?

或者我可以使用替代的 ValueBinder 吗?

或任何其他选择?

Server Error in '/' Application.
The JSON request was too large to be deserialized.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidOperationException: The JSON request was too large to be deserialized.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:

[InvalidOperationException: The JSON request was too large to be deserialized.]
   System.Web.Mvc.EntryLimitedDictionary.Add(String key, Object value) +464621
   System.Web.Mvc.JsonValueProviderFactory.AddToBackingStore(EntryLimitedDictionary backingStore, String prefix, Object value) +413
   System.Web.Mvc.JsonValueProviderFactory.AddToBackingStore(EntryLimitedDictionary backingStore, String prefix, Object value) +164
   System.Web.Mvc.JsonValueProviderFactory.AddToBackingStore(EntryLimitedDictionary backingStore, String prefix, Object value) +164
   System.Web.Mvc.JsonValueProviderFactory.AddToBackingStore(EntryLimitedDictionary backingStore, String prefix, Object value) +373
   System.Web.Mvc.JsonValueProviderFactory.AddToBackingStore(EntryLimitedDictionary backingStore, String prefix, Object value) +164
   System.Web.Mvc.JsonValueProviderFactory.GetValueProvider(ControllerContext controllerContext) +116
   System.Web.Mvc.<>c__DisplayClassc.<GetValueProvider>b__7(ValueProviderFactory factory) +34

       System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +151
   System.Linq.WhereSelectEnumerableIterator`2.MoveNext() +177

如果您使用 JSON.NET 进行序列化/反序列化,则可以将默认的 JsonValueProviderFactory 替换为自定义的 JsonValueProviderFactory,如下所示这篇博文 http://www.dalsoft.co.uk/blog/index.php/2012/01/10/asp-net-mvc-3-improved-jsonvalueproviderfactory-using-json-net/:

public sealed class JsonDotNetValueProviderFactory : ValueProviderFactory
{
   public override IValueProvider GetValueProvider(ControllerContext controllerContext)
   {
        if (controllerContext == null)
            throw new ArgumentNullException("controllerContext");

        if (!controllerContext.HttpContext.Request.ContentType.StartsWith("application/json", StringComparison.OrdinalIgnoreCase))
            return null;

        var reader = new StreamReader(controllerContext.HttpContext.Request.InputStream);
        var bodyText = reader.ReadToEnd();

        return String.IsNullOrEmpty(bodyText) ? null : new DictionaryValueProvider<object>(JsonConvert.DeserializeObject<ExpandoObject>(bodyText, new ExpandoObjectConverter()) , CultureInfo.CurrentCulture);
    }
}

并在你的Application_Start:

ValueProviderFactories.Factories.Remove(ValueProviderFactories.Factories.OfType<JsonValueProviderFactory>().FirstOrDefault());
ValueProviderFactories.Factories.Add(new JsonDotNetValueProviderFactory());

如果您想坚持使用使用的默认工厂JavaScript序列化器 http://msdn.microsoft.com/en-us/library/system.web.script.serialization.javascriptserializer.aspx你可以调整类maxJsonLength http://msdn.microsoft.com/en-us/library/bb513882.aspxweb.config 中的属性:

<system.web.extensions>
    <scripting>
        <webServices>
            <jsonSerialization maxJsonLength="2147483644"/>
        </webServices>
    </scripting>
</system.web.extensions>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JsonValueProviderFactory 抛出“请求太大” 的相关文章

  • 添加对共享类的多个 WCF 服务的服务引用

    我正在尝试将我的 WCF Web 服务拆分为几个服务 而不是一个巨大的服务 但是 Visual Studio Silverlight 客户端 复制了两个服务共享的公共类 这是一个简单的例子来说明我的问题 在此示例中 有两个服务 两者都返回类
  • 处理 fanart.tv Web 服务响应 JSON 和 C#

    我正在尝试使用 fanart tv Webservice API 但有几个问题 我正在使用 Json Net Newtonsoft Json 并通过其他 Web 服务将 JSON 响应直接反序列化为 C 对象 这里的问题是元素名称正在更改
  • 使用实体框架从集合中删除项目

    我正在使用DDD 我有一个 Product 类 它是一个聚合根 public class Product IAggregateRoot public virtual ICollection
  • Guid 应包含 32 位数字和 4 个破折号

    我有一个包含 createuserwizard 控件的网站 创建帐户后 验证电子邮件及其验证 URL 将发送到用户的电子邮件地址 但是 当我进行测试运行时 单击电子邮件中的 URL 时 会出现以下错误 Guid should contain
  • try-catch 中未处理的异常

    try list from XElement e in d Descendants wix File where e Attribute Name Value Contains temp Name e Parent Parent Attri
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 调试内存不足异常

    在修复我制作的小型 ASP NET C Web 应用程序的错误时 我遇到了 OutOfMemoryException 没有关于在哪里查看的提示 因为这是一个编译时错误 如何诊断此异常 我假设这正是内存分析发挥作用的地方 有小费吗 Thank
  • ZLIB 解压缩

    我编写了一个小型应用程序 该应用程序应该解压缩以 gzip deflate 格式编码的数据 为了实现这一点 我使用 ZLIB 库 使用解压缩功能 问题是这个功能不起作用 换句话说 数据不是未压缩的 我在这里发布代码 int decompre
  • 是否有与 C++11 emplace/emplace_back 函数类似的 C# 函数?

    从 C 11 开始 可以写类似的东西 include
  • 范围和临时初始化列表

    我试图将我认为是纯右值的内容传递到范围适配器闭包对象中 除非我将名称绑定到初始值设定项列表并使其成为左值 否则它不会编译 这里发生了什么 include
  • 通过不同 DLL 或 EXE 中的指针或引用访问 STL 对象时发生访问冲突

    我在使用旧版 VC6 时遇到以下问题 我只是无法切换到现代编译器 因为我正在处理遗留代码库 http support microsoft com kb 172396 http support microsoft com kb 172396
  • 从 Orchard 内的主题渲染图像

    我刚刚选择 Orchard 来构建我的博客 作为创建这个新博客的努力的一部分 我正在创建一个自定义主题 这个自定义主题同时具有 CSS 和图像 我的问题 我的问题基本上可以归结为 如何渲染属于主题一部分的图像 到目前为止我已经尝试过的 我尝
  • 组合框项目为空但数据源已满

    将列表绑定到组合框后 其 dataSource Count 为 5 但组合框项目计数为 0 怎么会这样 我习惯了 Web 编程 而且这是在 Windows 窗体中进行的 所以不行combo DataBind 方法存在 这里的问题是 我试图以
  • C# 创建数组的数组

    我正在尝试创建一个将使用重复数据的数组数组 如下所示 int list1 new int 4 1 2 3 4 int list2 new int 4 5 6 7 8 int list3 new int 4 1 3 2 1 int list4
  • 在 C 中复制两个相邻字节的最快方法是什么?

    好吧 让我们从最明显的解决方案开始 memcpy Ptr const char a b 2 调用库函数的开销相当大 编译器有时不会优化它 我不会依赖编译器优化 但即使 GCC 很聪明 如果我将程序移植到带有垃圾编译器的更奇特的平台上 我也不
  • .NET-MVC - 通过 SSL 重写 URL + 某些 URL?

    我有一个运行 IIS 6 NET MVC 和单个域名的网络服务器 该网站使用 URL 重写来生成如下 URL 域名 com controller action 我愿意强行一 1 个控制器 to use SSL 其他的应该无需 SSL 即可工
  • 运行代码首先迁移更新数据库时出错

    我在迁移到数据库时遇到问题 并且似乎找不到我遇到的错误的答案 System MissingMethodException Method not found System Data Entity Migrations Builders Tab
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt
  • 过度使用委托对性能来说是一个坏主意吗? [复制]

    这个问题在这里已经有答案了 考虑以下代码 if IsDebuggingEnabled instance Log GetDetailedDebugInfo GetDetailedDebugInfo 可能是一个昂贵的方法 因此我们只想在调试模式
  • 以编程方式使用自定义元素创建网格

    我正在尝试以编程方式创建一个网格 并将自定义控件作为子项附加到网格中 作为 2x2 矩阵中的第 0 行第 0 列 为了让事情变得更棘手 我使用了 MVVM 设计模式 下面是一些代码可以帮助大家理解这个想法 应用程序 xaml cs base

随机推荐

  • dplyr:将计数出现次数放入新变量中[重复]

    这个问题在这里已经有答案了 想要了解 dplyr 代码 但无法弄清楚这一点 已经看到这里描述的许多变量的类似问题 用 dplyr 总结一个因子的计数 https stackoverflow com questions 25811756 su
  • 在 Windows 系统上移动文件的最快方法 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想要将大约 800GB 的数据从 NTFS 存储设备移动到 FAT32 设备 两者都是外部硬盘驱动器 在 Windows 系统上 实现这
  • 自定义元素 Web 组件 Shadow DOM 供应商脚本/元素

    当与自定义元素 https html spec whatwg org multipage custom elements html custom elements那个杠杆影子 DOM https dom spec whatwg org sh
  • 输入不是数字时输出错误。 C++

    我正在创建一个函数 它从用户的输入中获取一个数字并找到它的绝对值 如果用户输入数字以外的任何内容 我想让它返回错误 我该怎么做呢 我知道这对很多人来说可能是一个简单的问题 但我正在上第一堂 C 编程课 所以我知之甚少 任何帮助将不胜感激 如
  • 处理 TextBox 中的 ENTER 按钮,ASP.NET

    我在 ASP NET 中遇到以下问题 有一个表单 其中包含一个文本框和旁边的一个按钮 用户在填写该框后应该按下该按钮 示例http www burnthespam info http www burnthespam info 单击 选择您的
  • Objective-C 属性是公开只读的,但有一个私有 setter

    我想使用 property语法来声明一个公开只读的合成属性 但有一个可以从类内私有调用的 setter 由于它是 Objective C 这基本上意味着setFoo 方法将被合成 但在类本身之外调用它会导致警告 无法识别的选择器 要触发警告
  • 如何使用 pub/sub 机器人对消息作出反应

    我创建了一个带有按钮和 onClick 操作的卡片 该卡片成功向我的客户发送了类型为 CARD CLICKED 的消息 当我尝试使用 NEW MESSAGE 或 UPDATE MESSAGE 类型的消息响应此消息时 该消息将显示为新消息 而
  • “/packages 不能表示为 URI”

    我正在开发一个使用 maven POM xml 文件来构建的 Scala 项目 添加导入 org scalatest FunSuite 或 Matchers 的测试文件后构建失败 并显示错误消息 packages 无法表示为 URI 插件
  • 将 doxygen 的图表从上到下方向翻转为从左到右

    doxygen 图为 includes and 包含在 创建的嵌套深度从上到下递增 使用 1 8 5 由于我们的图大多是带有许多节点的浅图 这会导致非常宽的图和丑陋的水平滚动条 有没有办法教 doxygen 以从左到右的方向创建这些图 就像
  • 如何读取iPhone设备控制台的内容?

    当设备通过 Xcode 插入我的机器时 我可以读取控制台 我需要构建一种方式来读取控制台 以便测试用户从设备获取控制台输出消息和崩溃报告 然后通过电子邮件对话框向其发送电子邮件 iOS 上是否存在控制台日志和崩溃报告所在的标准文件位置 控制
  • 如何在 Android 模拟器中连接 localhost? [复制]

    这个问题在这里已经有答案了 我在里面做了一个php脚本本地主机我将其与httpClient但我遇到了问题 请告诉我如何连接到 php 文件本地主机从模拟器 Use 10 0 2 2访问您的实际机器 正如您所知 当您使用模拟器时 localh
  • 意外的特质行为

    给定一个简单的代数数据类型Parent scala gt sealed trait Parent defined trait Parent scala gt case object Boy extends Parent defined ob
  • 当我通过列表映射时,React-bootstrap Modal 组件打开/关闭所有模态

    编程新手 所以如果我的措辞不正确 我很抱歉 我使用 map 来渲染和列出数组中的每个项目 对于每个项目 我希望模态仅打开 关闭与数组中每个项目相对应的特定模态 但是 当我单击按钮打开模式时 每个模式都会打开和关闭 我相信这是因为模态全部设置
  • 今天我们可以分享一下 App 类吗 - Widget-Extension

    我正在开发一个应用程序 我必须在 Today Widget Extension 中使用我的一些类 但我没有任何方式访问这些课程 是否可以访问 Today Widget Extension 中的应用程序类 有可能的 首先 您需要将类的目标设置
  • 如何在 Python 中使用 PKCS12 对 RSA 密钥进行编码?

    我正在使用 Python 在 Google App Engine 下 并且我有一些需要以 PKCS 12 格式导出的 RSA 私钥 有什么可以帮助我的吗 我正在使用 PyCrypto KeyCzar 并且我已经弄清楚如何以 PKCS8 格式
  • Mocha 在所有类中的所有测试运行后运行

    所以我正在使用 mocha 并且我有超过 10 个 JS 类的测试 我构建了一个日志变量 该变量在这 10 个类的整个测试运行过程中都有效 现在我想做的是在最后一次测试运行后 我想将此日志写入文件 所以我做的第一件事就是在每堂课上写这样的东
  • VBA getElementById 不适用于按钮

    我正在尝试访问网站 在文本框中键入一个值 然后单击搜索按钮来搜索我的值 我的问题是 我无法获取按钮元素来触发单击事件 VBA Dim i As Long Dim objElement As Object Dim objCollection
  • 如何符合协议变量的设置和获取?

    我正在研究协议以及如何遵守它们 protocol Human var height Int get set struct Boy Human var height Int return 5 error 我正在尝试学习实现 set 和 get
  • Firebase Storage 共享下载网址存在安全风险吗?

    我的 Firebase 存储中保存了一张图像 我想在我发送的多封电子邮件中显示此图像 到目前为止 我已使用从 Firebase 控制台获取的下载 URL 并且图像成功显示 我的问题是 这是分享图像的正确方式吗 安全吗 如果没有 那么我应该如
  • JsonValueProviderFactory 抛出“请求太大”

    我收到一个异常 即 JSON 请求太大而无法反序列化 它来自 JsonValueProviderFactory MVC 应用程序当前有一个使用 Json Net 的自定义模型绑定器 它在反序列化 json 数据时没有问题 但是我假设默认的