【发布时间】:2017-05-31 16:17:01
【问题描述】:
我为 Debian 8 (jessi) 开发了 .NET 应用程序,我发现了这个异常(System.UnauthorizedAccessException,权限访问路径 /usr/lib/myapplication/mydir/myfile.db 被拒绝)。 已执行 mydir 的命令 chmod -R 0777。没有效果。 有任何想法吗 ?
UPD: 我正在使用 LiteDb 库来创建 lite.db 本地数据库。 调用栈: System.UnauthorizedAccessException:访问路径 'path_to_litedb_file' 被拒绝。 ---> System.IO.IOException: 权限被拒绝
在 Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func2 errorRewriter)
at Interop.CheckIo[TSafeHandle](TSafeHandle handle, String path, Boolean isDirectory, Func2 errorRewriter)
在 Microsoft.Win32.SafeHandles.SafeFileHandle.Open(字符串路径,OpenFlags 标志,Int32 模式)
在 System.IO.UnixFileStream..ctor(字符串路径、FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项、FileStream 父级)
在 System.IO.UnixFileSystem.Open(字符串 fullPath、FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项、FileStream 父级)
在 System.IO.FileStream.Init(字符串路径、FileMode 模式、FileAccess 访问、FileShare 共享、Int32 bufferSize、FileOptions 选项)
在 LiteDB.FileDiskService.CreateFileStream(String path, FileMode mode, FileAccess access, FileShare share)
在 LiteDB.FileDiskService.Initialize(Logger 日志,字符串密码)
在 LiteDB.LiteEngine..ctor(IDiskService 磁盘,字符串密码,Nullable1 timeout, Int32 cacheSize, Logger log)
at LiteDB.LiteDatabase.<>c__DisplayClass11_0.<.ctor>b__0()
at LiteDB.LazyLoad1.get_Value()
在 LiteDB.LiteCollection`1.EnsureIndex(String field, Boolean unique)
【问题讨论】:
-
你用什么代码来读取文件?
-
我首先尝试创建它。对于此操作,我的代码使用 LiteDb 进行此操作。