System.UnauthorizedAccessException: 访问被拒绝。 ImageMagick (Magick.NET)

System.UnauthorizedAccessException: Access is denied. ImageMagick (Magick.NET)

我正在使用 Magick.NET-AnyCPU,它在本地运行良好。当我部署到我的服务器时它不起作用并且我收到一个异常记录说:

System.UnauthorizedAccessException: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))

Stack trace
at ImageMagick.MagickImage..ctor()
at ImageMagick.MagickImage..ctor(Stream stream)

经过一些挖掘后,似乎 AnyCPU 版本的库在启动时尝试从 Temp 目录动态加载它需要的版本。任何有关如何修复此问题的帮助将不胜感激。我试图更新权限,但很难说这是否是原因。我试图使用库的 x64 版本,但后来我什至无法构建我的项目,因为它引用了我猜是 x86 的系统框架。

如文档 (https://magick.codeplex.com/documentation) 中所述,AnyCPU 版本会将 x64 或 x86 版本写入您的临时目录。但这并不总是适用于生产环境。可以使用MagickAnyCPUclass的CacheDirectory属性改变临时目录的位置