JSON 反序列化仅在实时构建中引发循环引用

2023-12-14

我有一个奇怪的问题,我无法理解。我正在尝试为我的 MVC4 应用程序创建一个“导出到 csv”函数,其中相关的 JSON 通过 ajax 调用传递到我的 ActionResult。 ActionResult 反序列化字符串化的 JSON(使用 JSON.Net),将其写入 csv 格式的文件,然后返回新文件的服务器路径。然后我的成功回调会收到路径并调用 url 进行下载。

这在本地工作正常,但在我的实时测试服务器上我得到以下异常:

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

JSON(以及随后反序列化为的对象)稍微复杂一些。它们来自 SlickGrid DataView 的分组子集。当我包含列总计的聚合信息时,我遇到了循环引用异常(这仅与那些精通 SlickGrid 的人相关,我不认为传递到服务器的数据是一个问题),但我已经删除了它们在将 JSON 传递到服务器之前。这是我的 JSON 到 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; }
}

我唯一想到的是,由于数据的构造方式,根对象中的行的 List 可能会在反序列化期间抛出循环引用,因为组不一定具有唯一的行引用。

我的问题是为什么它在本地运行良好?我不知道我错过了什么。


太好了[ScriptIgnore]属性有帮助。另外,需要完全确定的是,所有 URL 路径(包括 AJAX 代码中的 URL 路径)都会正确解析为应用程序根目录。当其中一些错误时,这就是从开发到生产的过程中出现问题的一个臭名昭著的根源。

听起来这不一定是主要问题,但我对您的应用程序的设计没有任何了解。这绝对值得一看。

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

JSON 反序列化仅在实时构建中引发循环引用 的相关文章

随机推荐

  • 敏感的 ASP.NET Session 数据是否需要加密?

    ASP NET Session string key 数据是否需要加密才能安全 如果此类数据始终保留在服务器上 那么只要数据是通过 SSL 从客户端发送的 那么在那里存储信用卡信息 密码等是否就可以安全了 鉴于所有的反对票都投在这里 我将添
  • 在android中显示后台服务的弹出窗口

    您好 android 中可以显示后台运行服务的弹出对话框吗 答案是肯定的 我该怎么做 有几种选择 您可以使用主题并使活动的外观和行为类似于对话框 如这个问题 通过设置android theme你的属性
  • img 标签显示方向错误

    我在这个链接中有一张图片 http d38daqc8ucuvuv cloudfront net avatars 216 2014 02 19 2017 13 48 jpg 正如您所看到的 这是一个方向正确的正常图像 但是 当我将此链接设置为
  • 如何使用seaborn实现Lineplot,x轴为“日期”

    我尝试实现seaborn lineplot 数据框具有日期值列表作为索引 试图将其作为 x 轴 Dataframe info 将 日期 字段显示为对象 我需要以日期为 x 轴的 4 种类型的列值的线图 当我尝试执行下面的代码时 它显示错误消
  • 为什么从 java 9 PhantomReference java doc 开始,它就专门用于 POST-mortem 清理操作,尽管它之前是 PRE-mortem

    PhantomReference java 8 的 java 文档更少看起来像这样 幻像引用对象 在收集器之后排队 确定它们的引用对象可以以其他方式被回收 幻影 参考最常用于调度事前清理 行动以比 Java 更灵活的方式 最终确定机制 如果
  • Android - XPath 评估速度非常慢

    我在用着XPath查询我的XML file目前大约有100KB 我正在迭代一个数组并查询列表中的每个值 不幸的是单个查询大约需要 3 4 秒在调试器下 在禁用调试器的情况下稍微少一些 有什么想法为什么这么慢吗 我用一个Galaxy S2供测
  • 为什么非 pic 代码不能使用运行时修复完全实现 ASLR?

    据我了解 PIC 代码使 ASLR 随机化更加高效 更加容易 因为代码可以放置在内存中的任何位置 而无需更改代码 但如果我根据维基百科理解正确的话搬迁动态链接器可以在运行时进行 修复 以便可以找到符号 尽管代码不是位置无关的 但根据我在这里
  • Java中ConcurrentSkipListMap的非线程安全方法

    在我的 Java 项目中 我需要以多线程方式使用 TreeMap 我发现 ConcurrentSkipListMap 是我所需要的 但有些方法不是线程安全的 其中之一 containsKey 对象键 以多线程方式使用此方法的典型解决方案是什
  • 标题应该按什么顺序包含? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 在头文件 cpp 文件中应该以什么顺序声明头文件 显然 后续标头所需的标头应该更早 并且特定于类的标头应该在 cpp 范围而不是标头范围中 但是是否有设定的顺序约定 最佳实践 在头文件中
  • 安装适用于 Android 的 ADB 接口驱动程序

    我尝试通过设备管理器安装 将手机连接到笔记本电脑后 我在设备管理器的 其他设备 部分中收到 Celkon 内置 GSM 手机 链接 我右键单击并单击 更新驱动程序 和 从指定位置安装 并找到 inf 文件 usb2ser 2kXP inf
  • 无法在 Windows 上克隆,但可以从 Gitlab 服务器在 Linux 上克隆

    我正在尝试通过 SSH 从远程 Gitlab 服务器克隆存储库 我在用Gitlab CE version 9 3 9 755bb71 and TortoiseGIT version 2 5 0 and git for windows ver
  • 如何使用 prettier 忽略特定规则?

    有没有办法不format write or check更具体的规则 例如 我不在乎我的代码中是否有分号 我想检查除此之外的其他规则 prettier useTabs true tabWidth 4 很不幸的是 不行 有人指出 它永远不会提供
  • 保持图像的长宽比?

    我正在使用 pictureBox 来显示从服务器接收的图像 但我的问题是紧凑框架中的图片框只有三种尺寸模式 拉伸图像 正常 中心图像 我收到的图片通常尺寸较大 因此我必须使用 StrecthImage 模式 但随后纵横比保持不变 因此显示的
  • 当不知道 InterfaceClassGUID 时,我可以使用 SetupDiEnumDeviceInterfaces 从 SetupDiGetDeviceInterfaceDetail 获取 DevicePath 吗?

    概述 我读过了如何获取设备的设备接口 GUID and 如何使用设备实例 ID 打开设备的句柄 但我仍然对如何 或者是否应该 使用感到困惑设置DiEnumDeviceInterfaces与设置DiGetDeviceInterfaceDeta
  • 使用UrlFetchApp函数登录并抓取私有数据

    我需要从不支持 API 的门户中抓取私有数据 IMPORTXML由于登录而无法执行此操作 我有一个包含从和至今信息的链接 内容是包含成本数据的表格 我需要登录并将简单的表格抓取到我的 Google 表格中 我需要登录这个网站 https w
  • JavaScript。像 SQL 一样连接 2 组对象的最佳方法?

    假设我们有 2 组对象 set1 id 1 x 1 y 2 id 2 x 2 y 2 set2 id 1 z 1 id 2 z 2 我们想要 set3 set1 join set2 on id gt gt set3 id 1 x 1 y 2
  • 查找到 LED 的距离

    想象一下 您有一个圣诞树风格的 LED 灯 距相机的距离为 D 了解了 LED 灯 例如形状和强度 和相机 例如焦距 的属性 是否可以使用快照计算从相机到 LED 灯的距离 如果是 测量的准确度如何 明亮的光源本身对此不利因为明亮的光线通常
  • 如何在java pdfbox中按结果分割pdf文件

    我有一个 pdf 文件 包含 60 页 在每个页面中 我都有唯一且重复的发票编号 我使用的是 Apache PDFBOX import java io import org apache pdfbox pdmodel import org
  • Ruby on Rails 3:在destroy方法销毁对象后,如果系统中没有更多相关对象?

    我有一个小问题 我有以下 2 个型号 class CriticalProcess lt ActiveRecord Base has many authorizations dependent gt destroy has many role
  • JSON 反序列化仅在实时构建中引发循环引用

    我有一个奇怪的问题 我无法理解 我正在尝试为我的 MVC4 应用程序创建一个 导出到 csv 函数 其中相关的 JSON 通过 ajax 调用传递到我的 ActionResult ActionResult 反序列化字符串化的 JSON 使用