【发布时间】:2015-12-28 19:50:22
【问题描述】:
Rotativa 1.6.4 不断在 Rotativa.dll 中发出 System.NullReferenceException
具体发生在 BuildPdf(context)
我尝试过线程、任务和其他后台类型的工作。为什么? PDF 生成有时非常慢,并且使用 ActionAsPdf(请参阅Here)时出现错误,因此我想将其转为新的线程/任务或后台作业,并且只记录错误,这样我就可以让用户重新开始他们的工作尽快。
BuildPdf 采用当前控制器上下文,该上下文始终为 null 我尝试使用 httpcontext 创建一个新上下文,创建一个新的控制器实例,所有结果都相同。一旦它进入 Rotativa.dll,上下文就完全消失了,无论我是从我成为线程/任务之前传入它,还是在我调用 BuildPdf() 之前创建一个新的;
如何在开始线程/任务作业之前或在线程/任务作业中进入 Rotativa 之前获取有效的控制器上下文?
在这一点上,我已经准备好在真正的 PDF 解决方案上花费真金白银,但到目前为止,它们似乎都是 PITA,即使您对 PDF 有最简单的儿童需求,它们也最多只能是平庸的。
【问题讨论】:
标签: c# asp.net-mvc multithreading pdf