我的Asp.Net Core 2.1应用程序可以生成两个HTML报告。每个报告都有一个按钮,用于使用DinkToPDF将报告输出为PDF文件。该按钮调用该报表的控制器,该控制器提供DinkToPDF所需的所有参数,然后生成PDF。一个基本参数是要转换的页面的URL,它不是原始的HTML报告,而是从中删除了javascript等的外观。
第一个报告将输出登录页面而不是报告数据,直到我在类名上方放置[AllowAnonymous]。然后效果很好。
第二个报告使用第一个报告中的文件作为模板。在所有必要的地方,所有内容均已适当重命名。但是,即使该页面当然具有[AllowAnonymous],也只会生成登录页面的PDF。
我可以单步执行控制器代码,并观看DinkToPDF参数获取其值。但是,当调用DinkToPDF的“转换”方法时,出现了问题。
是否有一种方法可以查看该方法内部的内容,以查看为什么它认为必须进行身份验证?
答案 0 :(得分:0)
当我想查看“输出”窗口后,我发现这是“ Qt:无法初始化OLE”错误之一。我还发现注入到我的类中的数据库上下文对象为空。显然,上下文正在以某种方式丢失。在原始报告中,这没关系,因为我避开了EF Core,并通过旧式ADO类型的调用来访问数据库。
因此,在新报告中,我将所有EF Core替换为ADO类型的调用,问题就消失了。只需制定一些路由即可。