当我尝试运行“媒体受写保护”的RavenDB Web管理控制台时,我收到错误。
我正在使用的网站在AWS上运行,其中一个SSD上有乌鸦数据,另一个SSD上有乌鸦索引,以获得最佳性能。我生成了一个带有8个内核和64GB内存的计算实例,以加快索引速度,因为在深度映射中有大约300k个文档要编入索引,在2核/ 8GB实例上运行时需要两天才能编制索引。
当我断开mega-instance并将驱动器重新连接到更适度的VM并将其启动时,我收到了错误消息。我想通过上面提到的设置,其中索引,数据和网站都在不同的磁盘上,我可以随意分离并重新附加来自VM的驱动器。
有人可以告诉我有一个非常简单的解决办法吗?
完整堆栈跟踪:
[IOException: The media is write protected.
]
System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) +14381860
System.IO.Directory.InternalCreateDirectory(String fullPath, String path, Object dirSecurityObj, Boolean checkHost) +1578
System.IO.Directory.InternalCreateDirectoryHelper(String path, Boolean checkHost) +213
Raven.Database.Indexing.IndexStorage..ctor(IndexDefinitionStorage indexDefinitionStorage, InMemoryRavenConfiguration configuration, DocumentDatabase documentDatabase) in c:\Builds\RavenDB-Stable\Raven.Database\Indexing\IndexStorage.cs:97
Raven.Database.DocumentDatabase..ctor(InMemoryRavenConfiguration configuration) in c:\Builds\RavenDB-Stable\Raven.Database\DocumentDatabase.cs:231
Raven.Web.ForwardToRavenRespondersFactory.Init() in c:\Builds\RavenDB-Stable\Raven.Web\ForwardToRavenRespondersFactory.cs:120
System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +80
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +165
答案 0 :(得分:0)
原来这是一个配置问题。
因为我附加了多个磁盘,所以我需要将索引位置重新指定为不同的驱动器号,因为我附加的顺序决定了它们的字体与Raven的web.config设置不匹配。由此产生的混乱最终导致我需要重新索引。大鼠。
我很想听听使用此策略的任何人快速构建索引,看看他们使用哪些流程来使其全部顺利运行。