情况如下:我有一个 ASP.NET Web 窗体应用程序,它使用 WPF 控件进行报告。
过程如下:Create WPF controls and bind to data -> create image from WPF control -> use generated image to create PDF reports.
我RenderTargetBitmap
用来从 WPF 控件渲染位图。问题是当我在我的本地机器(Windows 10)上运行所有这些时,它可以工作,一旦应用程序部署在 QA 机器(Windows Server 2008 R2)上,它就会生成空图像。
我试图通过在 WPF 控件上仅保留静态文本来简化报告页面,但我仍然得到空白页面。
我创建了示例控制台应用程序,它模拟了将数据绑定到 WPF(授予的静态数据)的一部分并从 WPF 控件生成图像,并且它适用于两种环境。我能想到的一个区别是控制台应用程序没有运行 as IIS' AppPoolIdentity
,它在 QA 机器上运行 Web 应用程序。
我遇到了这篇 SO 帖子,它表明存在导致类似问题的 Windows 更新。我们的 QA 机器是 Azure VM,因此会定期安装更新。导致该问题的更新来自 2017 年 9 月,修复更新于2017 年 10 月发布。所以我排除了导致问题的Windows更新。
同样在引用的 SO 帖子中,OP 建议仅当运行代码的帐户是系统帐户时才会发生此问题
只有在高权限系统帐户下运行(例如,来自任务调度程序)时,它才不起作用。
我也试过这个,让任务计划程序运行示例控制台应用程序,但正如我上面提到的,它成功地创建了图像。
所以在这一刻,我几乎没有想法。
应该生成图像的应用程序代码是分散的,所以我不会在这里分享它,但如果有任何特别感兴趣的部分很高兴发布。
知道什么会导致差异中的这种不同行为。环境?