我在 Azure Worker Role 中使用 WPF 将多个图像合成为一个图像并保存到磁盘。模拟器中的一切都运行良好,但是当我部署到 Azure 时,我希望看到缩放/调整大小图像的区域完全是黑色的。
我将代码打包到控制台应用程序中,并使用远程桌面将其复制到托管辅助角色的同一实例中。该应用程序运行良好。这告诉我,能够运行我的代码所需的一切都存在于一个普通的天蓝色实例上。
在可能干扰 WPF 图像处理的辅助角色的上下文中运行有什么不同?
更新 这仅影响 3D 转换。在伪代码中,我正在做这样的事情:
- 创建网格,应用纹理并将它们添加到
ModelVisual3D
- 创建一个
Viewport3DVisual
,设置一个正交相机并添加ModelVisual3D
- 将视口渲染为
RenderTargetBitmap
- 用于在“场景画布”上
DrawingContext.DrawImage()
绘制RenderTargetBitmap
当不需要 3D 时,图像也会被缩放和添加DrawingContext.DrawImage()
。这工作正常。所以这个问题在某种程度上与创建或使用RenderTargetBitmap
3D 场景有关。
更新 事实证明,当 WPF 不与桌面交互时,它不会呈现 3D 内容。模拟器在我的个人用户上下文下运行,而在 Azure 中它作为系统帐户运行。通过创建作为本地系统登录的 Windows 服务并执行相同的步骤,可以在本地复制该问题。解决这个问题可能是一个很大的挑战。我们可能不得不使用虚拟机。