Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 如何找出从非托管代码调用属性的位置_Asp.net_Reportviewer_Unmanaged_Callstack - Fatal编程技术网

Asp.net 如何找出从非托管代码调用属性的位置

Asp.net 如何找出从非托管代码调用属性的位置,asp.net,reportviewer,unmanaged,callstack,Asp.net,Reportviewer,Unmanaged,Callstack,我有一个绑定到数据源的MS ReportViewer报表,该报表正在请求一个它不应该请求的属性。我已经检查了报告上的所有字段,但我找不到它使用的任何地方 在属性上放置一个断点表明它确实被调用,但我无法找到ReportViewer从何处进行调用 ****有没有办法找出从何处调用此属性** 以下是我到目前为止检查的内容: 堆栈跟踪:显示托管代码,检查了反汇编,但看不到任何明显的内容 调用层次结构显示从中调用属性的所有位置,其中任何位置都不在报告中 更新: 尝试了n8wrl关于引发异常的建议,但堆

我有一个绑定到数据源的MS ReportViewer报表,该报表正在请求一个它不应该请求的属性。我已经检查了报告上的所有字段,但我找不到它使用的任何地方

在属性上放置一个断点表明它确实被调用,但我无法找到ReportViewer从何处进行调用

****有没有办法找出从何处调用此属性**

以下是我到目前为止检查的内容:

堆栈跟踪:显示托管代码,检查了反汇编,但看不到任何明显的内容

调用层次结构显示从中调用属性的所有位置,其中任何位置都不在报告中

更新:

尝试了n8wrl关于引发异常的建议,但堆栈仍然位于非托管代码上

更新2


我还尝试添加Xml和脚本忽略标记,以防对象在某个地方被序列化,但这不起作用(除非它们不是忽略序列化的正确标记?

好的,我想出了一个解决方案。我假设这与序列化有关,所以我将数据源传递给System.Web.Script.serialization.JavaScriptSerializer

序列化对象时,我找到了导致代码崩溃的所有属性。我在这些属性中添加了[ScriptIgnore]标记,以阻止它们开始序列化,因为它们没有被使用

System.Web.Script.Serialization.JavaScriptSerializer serializer = new System.Web.Script.Serialization.JavaScriptSerializer();

serializer.RecursionLimit = int.MaxValue;

object o = serializer.Serialize(base.CurrentOrder);

用锤子敲打它-你能让你的属性抛出一个异常,运行报告,并在失败时查看堆栈跟踪吗?@n8wrl-谢谢,我尝试了你的建议(请参阅更新),但我仍然有同样的问题,因为不知道由于非托管代码,它从何处重新获得。