在调试引用IIS中运行的Sqlite的ASP.NET核心应用程序时,访问被拒绝
ASP.NET Core 2.2项目引用了Microsoft.EntityFrameworkCore.Sqlite(2.2.3)作为一个在调试引用IIS中运行的Sqlite的ASP.NET核心应用程序时,访问被拒绝,sqlite,entity-framework-core,sqlite-net,Sqlite,Entity Framework Core,Sqlite Net,ASP.NET Core 2.2项目引用了Microsoft.EntityFrameworkCore.Sqlite(2.2.3)作为一个包引用 由于提升了用户进程,在IIS Express中调试应用程序工作正常 问题:在IIS中调试应用程序时抛出错误 无法加载DLL“e_sqlite3”或其依赖项之一:访问被拒绝 如何在IIS中调试应用程序而无需费力的发布步骤 到目前为止,我的分析是:虽然在文件夹%userprofile%\.nuget\packages\sqlitepclraw.lib.e\u
包引用
由于提升了用户进程,在IIS Express中调试应用程序工作正常
问题:在IIS中调试应用程序时抛出错误
无法加载DLL“e_sqlite3”或其依赖项之一:访问被拒绝
如何在IIS中调试应用程序而无需费力的发布步骤
到目前为止,我的分析是:虽然在文件夹%userprofile%\.nuget\packages\sqlitepclraw.lib.e\u sqlite3.v110\u xp\1.1.12\runtimes\win-x64\native\e\u sqlite3.dll
中找到并成功加载了,但它只有读取
权限集,而没有读取和执行
权限集
缺少的Execute
权限似乎是罪魁祸首
如果我给用户
组或ApplicationPoolIdentity
也Read&Execute
,它就会起作用
为什么全局NuGet packages文件夹丢失读取和执行
?这只是非托管代码dll的问题吗
堆栈跟踪
System.DllNotFoundException:无法加载DLL“e_sqlite3”或其依赖项之一:访问被拒绝。(HRESULT异常:0x80070005(E_访问被拒绝))
在SQLitePCL.SQLite3Provider_e_sqlite3.NativeMethods.sqlite3_libversion_number()
在SQLitePCL.SQLite3Provider\u e\u sqlite3.SQLitePCL.ISQLite3Provider.sqlite3\u libversion\u number()
位于SQLitePCL.raw.SetProvider(ISQLite3Provider imp)
From:.NET Core和.NETSTANDARD不将依赖项复制到输出目录,它们使用deps.json进行映射,deps.json指向本地NuGet缓存的相对路径。我尝试将true
添加到csproj,但不会复制运行时文件夹