ASP.net Не удается загрузить DLL ‘Magick.NET-Q16-x64.Native.dll ‘: Доступ запрещен. (Исключение из HRESULT: 0x80070005 (E_ACCESSDENIED))

#c# #asp.net #dll #imagemagick.net

#c# #asp.net #dll #imagemagick.net

Вопрос:

Я использую image Magick для создания изображений из Stream. Я получаю ошибку, упомянутую в заголовке, в следующих строках.

  var image = new MagickImage();
  

Это проблема с ImageMagick или что-то еще. Не знаю, как это решить!!

Комментарии:

1. Имеет ли ваша файловая система правильные разрешения для доступа к рассматриваемой здесь dll?

2. Да, разрешение указано правильно..

3. @KnowledgeOverflow Можете ли вы предоставить ссылку для собственной библиотеки dll… Я протестирую и обновлю вас как можно скорее

Ответ №1:

Обходной путь: назначить пользователя идентификатору пула приложений с дополнительными привилегиями.

Решение (сработало для меня)

  1. Вручную установите временный каталог MagickNet.SetTempDirectory(@»C:WindowsTemp «);
  2. Предоставьте пользователю удостоверения пула приложений права на запись к нему. В моем случае я предоставил разрешение на запись для группы «Пользователи».

Комментарии:

1. Еще одна вещь, которую следует проверить, это то, что идентификатор пула приложений может записывать в C:WindowsTemp . Файл «Magick. NET-Q16-x64.Native.dll » создается там во время выполнения (в Magick. СЕТЕВЫЕ папки с версиями). Мне пришлось удалить мои версионные папки и проверить разрешения.

Ответ №2:

установите для параметра «Включить 32-разрядные приложения» значение true в дополнительных настройках вашего пула приложений IIS. введите описание изображения здесь