首页 > 解决方案 > 如何追踪 DinkToPFD 中发生的事情?

问题描述

我的 Asp.Net Core 2.1 应用程序可以生成两个 HTML 报告。每个报告都有一个按钮,用于使用 DinkToPDF 将报告输出为 PDF 文件。该按钮调用该报告的控制器,该控制器提供 DinkToPDF 所需的所有参数,然后生成 PDF。一个重要的参数是要转换的页面的 URL,它不是原始的 HTML 报告,而是从中删除了 javascript 等的相似文件。

第一个报告将输出登录页面而不是报告数据,直到我将 [AllowAnonymous] 放在类名上方。然后它工作得很好。

第二份报告使用第一份报告中的文件作为模板。在所有必要的地方,一切都被适当地重命名了。但是即使这个页面当然有[AllowAnonymous],它也只会生成登录页面的PDF。

我可以单步执行控制器代码并观察 DinkToPDF 参数获取它们的值。但是当调用 DinkToPDF 的“转换”方法时,出现了问题。

有没有办法在该方法内部查看它为什么认为它必须进行身份验证?

标签: asp.net-core

解决方案


在我想查看输出窗口后,我发现这是“Qt:无法初始化 OLE”错误之一。我还发现注入到我的类中的数据库上下文对象为空。显然,上下文以某种方式丢失了。在原始报告中,这无关紧要,因为我已经回避了 EF Core,并通过旧式 ADO 类型调用访问数据库。

因此,在新报告中,我将所有 EF Core 替换为 ADO 类型的调用,问题就消失了。只需要制定一些路线。


推荐阅读