Windows – ESENT无法确定最小I / O块大小

我试图在共享/多租户webhost上以嵌入模式运行 RavenDB. RavenDB依赖于ESENT存储API.主机上的文件系统被锁定. RavenDB Initialize()调用导致以下事件日志条目
Raven (20604) D:\Path\To\Website\App_Data\RavenDB\Data52e0e402-79d7-4f47-a219-3d1e2e73321c: An attempt to determine the minimum I/O block size for the volume "D:\" containing "D:\Path\To\Website\App_Data\RavenDB\logs\" Failed with system error 5 (0x00000005): "Access is denied. ".  The operation will fail with error -1032 (0xfffffbf8).

因此,假设执行进程需要访问以读取一些卷信息并且被拒绝,因为该进程仅被授予与其相关的卷的部分的权限.

任何人都知道相关权利是什么,以及是否可以以某种方式省略它们?

P.S.:比我有更多业力的人,请标记这个ravendb并表示同意

微软 KB266361
显示ESE错误代码错误消息.

在这种情况下,错误代码-1032是“无法访问文件,文件被锁定或正在使用”.

查看大量使用ESE的其他Microsoft产品(如Exchange)(参见http://technet.microsoft.com/en-us/library/bb218334(v=exchg.80).aspx),错误消息似乎与锁定问题更为一致,而不是权限问题.基于您在具有多租户的IIS的高度多线程环境中运行,这种锁定问题将再次发生.

为了帮助调查此问题,我建议使用Process Explorer(参见http://technet.microsoft.com/en-us/sysinternals/bb896653)之类的内容来查找谁对文件有锁定.这可能会将外部源显示文件锁定的原因.

我建议调查调用Initialize()的方法.在高并发环境中,该方法可能由两个单独的线程调用.您可能需要锁定负责此函数调用代码部分.

如果这没有帮助,最好在StackOverflow上使用代码示例提出问题.

希望这可以帮助.

相关文章

(1)when you ping a computer from itsafe,the ping command should return the local IP address. (...
1、点击win菜单,点击设置图标 2、选择系统选项 3、选择应用与程序选项 4、拉到最下方,选择程序与功能...
目前一直直接往Windows 2008 R2 Server中复制文件(暂时还没有搭建ftp服务),突然不能复制了,于是百度...
windows下使用vscode配合xebug调试php脚本 要下载有php_xebug.dll扩展的版本,最新版可能没有这个扩展,p...
在控制面板的程序与功能里启用和关闭windows功能打开,适用于linux的windows子系统
效果演示 推荐一个非常牛的文档网站生成器:docsify 我通过这个工具,成功将码云上的个人学习笔记发布到...