System.UnauthorizedAccessException: доступ запрещен. 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.

1 ответ

Решение

Как указано в документации ( https://magick.codeplex.com/documentation), версия AnyCPU запишет версию x64 или x86 в ваш временный каталог. Но это не всегда работает в производственной среде. Вы можете использовать свойство CacheDirectory класса MagickAnyCPU, чтобы изменить местоположение временного каталога.

Другие вопросы по тегам