Проект ASP.NET Core 2.2 ссылается на Microsoft.EntityFrameworkCore.Sqlite (2.2.3)
как PackageReference.
Отладка приложения в IIS Express работает нормально из-за повышенного пользовательского процесса.
Проблема: При отладке приложения в IIS выдается ошибка Unable to load DLL 'e_sqlite3' or one of its dependencies: Access is denied
.
Как отладить приложение в IIS без кропотливых шагов публикации?
Мой анализ такfar :
Хотя файл e_sqlite3.dll успешно найден и успешно загружен в папку %userprofile%\.nuget\packages\sqlitepclraw.lib.e_sqlite3.v110_xp\1.1.12\runtimes\win-x64\native\e_sqlite3.dll
, он имеет только Read
, но не установлен Read & Execute
разрешения.
Отсутствует Execute
разрешения, кажется, виновны.
Это работает, если я даю Users
группу или ApplicationPoolIdentity
также Read & Execute
.
Почему в глобальной папке пакетов NuGet отсутствует Read & Execute
?Это только проблема неуправляемого кода DLL?
Stack Trace
System.DllNotFoundException: Unable to load DLL 'e_sqlite3' or one of its dependencies: Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED))
at SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()
at SQLitePCL.SQLite3Provider_e_sqlite3.SQLitePCL.ISQLite3Provider.sqlite3_libversion_number()
at SQLitePCL.raw.SetProvider(ISQLite3Provider imp)