我们在NServiceBus中使用RavenDB。 我尝试将RavenDB从2.0更新到3.0。在文档之后,它应该非常简单: 1.停止服务 2.复制二进制文件 3.启动服务。
我做了那一切。我将二进制文件(Raven.Database.Dll,Raven.Abstractions.dll,Raven.server.exe)从服务器文件夹复制到&#34; \ C:\ Program Files \ NServiceBus.Persistence.v4&#34;。< / p>
当我尝试再次启动服务时,它会立即停止。文件权限似乎没问题。有没有我可以获得更多信息的日志文件?
[更新] Eventlog显示:
应用程序:Raven.Server.exe Framework版本:v4.0.30319 描述:由于未处理的异常,进程终止。 异常信息:System.IO.FileLoadException Stack:at Raven.Server.Program.Main(System.String [])
有什么奇怪的,因为安装了Framework 4.5(并被其他应用程序使用)
答案 0 :(得分:0)
确定。第一个事件日志导致了COMPLETE错误的方向。 :)似乎是一个后续错误。 Eventlog还有一条较旧的错误消息:
RavenDB service failed to start because of an error
System.InvalidOperationException: Could not open transactional storage: C:\Program Files\NServiceBus.Persistence.v4\Database\System\Data ---> System.InvalidOperationException: Could not read db details from disk. It is likely that there is a version difference between the library and the db on the disk.
You need to migrate the disk version to the library version, alternatively, if the data isn't important, you can delete the file and it will be re-created (with no data) with the library version. ---> System.InvalidOperationException: The version on disk (5.1) is different that the version supported by this library: 4.5
很清楚该怎么做。感谢。
答案 1 :(得分:0)
NB注意 - 我的解决方案不适用于您的主要NServiceBus数据库。不要删除您的数据。此解决方案适用于ServiceControl,其中存储的数据不太重要。
我最近遇到了ServiceControl这个问题 - 这是NServiceBus附带的一个监控工具。它将消息保存在位于C:\ ProgramData \ Particular \ ServiceControl%-33333 \ Data
的本地数据库中原来硬盘已满。不得不删除包含异常中提到的数据文件的文件夹以腾出空间(它是11GB)。然后,我将以下应用程序设置添加到ServiceControl.exe.config,以限制它保留的消息量:
<add key="ServiceControl/ExpirationProcessTimerInSeconds" value="900" />
<add key="ServiceControl/HoursToKeepMessagesBeforeExpiring" value="168" />
请参阅http://docs.particular.net/servicecontrol/how-purge-expired-data
ServiceControl将在启动时重新创建文件夹。