我正在尝试使用RavenDB实例在AppHarbor中运行我的应用程序。我已经更新了我的乌鸦库以构建888,我仍然得到以下错误。我还允许文件系统写访问,但我仍然得到相同的错误。有任何想法如何解决这个问题?
[EsentFileAccessDeniedException: Cannot access file, the file is locked or in use]
at Microsoft.Isam.Esent.Interop.Api.Check(Int32 err) in C:\Work\ravendb\SharedLibs\Sources\managedesent-61618\EsentInterop\Api.cs:line 2739
at Microsoft.Isam.Esent.Interop.Api.JetInit(JET_INSTANCE& instance) in C:\Work\ravendb\SharedLibs\Sources\managedesent-61618\EsentInterop\Api.cs:line 131
at Raven.Storage.Esent.TransactionalStorage.Initialize(IUuidGenerator uuidGenerator) in c:\Builds\RavenDB-Stable\Raven.Storage.Esent\TransactionalStorage.cs:line 205
答案 0 :(得分:4)
似乎在app启动期间,我的应用程序正在应用程序根目录中创建数据目录。我发现我有一个旧的RavenDB Embedded引用,这个引用在项目中使用的时间较长,而该项目正在创建不需要的数据目录。一旦我删除了该引用并推送,一切都开始正常工作。
答案 1 :(得分:2)
您是否尝试将AppHarbor Web worker实例文件存储用于RavenDB后备存储?这是个坏主意,请使用托管的RavenHQ add-on instead。
不在AppHarbor上工作的自托管RavenDB是known problem。
即使你让它工作,请注意在部署新版本的代码时或者在工作程序实例失败的情况下,工作文件系统不会保留。