安装程序在安装此软件包时遇到意外错误 - 。错误代码2896

时间:2018-04-19 06:52:40

标签: .net windows-installer ravendb ravendb-studio

我目前正在尝试在prod服务器上安装ravendb。我使用的licens文件与另一个test / prod服务器一样。

当我将许可证文件传递给安装程序时,安装似乎一直在崩溃。

我在日志文件中发现有趣的东西是这个。

Action start 08:14:02: OpenLicenseFileChooser.
MSI (c) (AC:A8) [08:14:02:763]: Invoking remote custom action. DLL: C:\Users\prod\AppData\Local\Temp\MSI7901.tmp, Entrypoint: OpenLicenseFileChooser
MSI (c) (AC!30) [08:14:04:934]: PROPERTY CHANGE: Adding RAVEN_LICENSE_FILE_PATH property. Its value is 'C:\license.xml'.
Action ended 08:14:04: OpenLicenseFileChooser. Return value 1.
MSI (c) (AC:F0) [08:14:04:950]: Doing action: LicenseFileExists
Action 08:14:04: LicenseFileExists. 
Action start 08:14:04: LicenseFileExists.
MSI (c) (AC:20) [08:14:04:997]: Invoking remote custom action. DLL: C:\Users\prod\AppData\Local\Temp\MSI81BD.tmp, Entrypoint: LicenseFileExists
MSI (c) (AC!FC) [08:14:05:231]: PROPERTY CHANGE: Deleting RAVEN_LICENSE_VALID property. Its current value is 'False'.
MSI (c) (AC!FC) [08:14:05:231]: PROPERTY CHANGE: Adding RAVEN_INSTALLER_INFO property. Its value is 'Checking existing license file'.
Action ended 08:14:07: LicenseFileExists. Return value 3.
DEBUG: Error 2896:  Executing action LicenseFileExists failed.
The installer has encountered an unexpected error installing this package. This may indicate a problem with this package. The error code is 2896. The arguments are: LicenseFileExists, , 
Action ended 08:14:07: WelcomeDlg. Return value 3.
MSI (c) (AC:1C) [08:14:07:281]: Doing action: CustomFatalError
Action 08:14:07: CustomFatalError. 
Action start 08:14:07: CustomFatalError.

许可证文件的路径是正确的,为什么会失败?

可以使用许可证文件的测试/产品服务器的数量是否有一些限制,如果是这样,我如何检查可能使用此许可证文件的服务器数量?

如果不是这样,那么我是否缺少任何依赖? - 是否需要访问互联网? - 是否需要安装其他东西?

除此之外我还注意到了这一行

  

安装程序在安装此程序包时遇到意外错误。这可能表明此包装存在问题。错误代码是2896.参数是:LicenseFileExists ,,

这表明了什么?

2 个答案:

答案 0 :(得分:0)

许可 :我敢打赌这很简单 - 就像您提出的许可问题一样。我同意Vadim你应该将license.xml置于其他地方 - 具有写访问权限。也许只需创建一个名为RavenDBLicense的新文件夹 - 某处 - 并确保它对systemadministrators可写 - 至少。例如c:\RavenDBLicense - 仅用于测试。

license.xml文件中是否有特定于机器特定于用户

更新:我看到您在论坛上得到了答案,并指出了此解决方案:https://ravendb.net/docs/article-page/3.5/csharp/server/configuration/license-registration

还有how to run the installer部分 - 我认为你很熟悉。

调试 :首先尝试的最好方法是最大化可用的日志记录信息 - 如果可能的话。我会尝试这两种方法,看看我是否能找到更好的线索。

事件查看器 :我想您可能想检查Windows事件查看器中是否记录了任何错误消息?按住 Windows键,点击 R ,输入eventvwr.msc并按Enter键。转到Windows Logs => Applications。寻找MsiInstaller events。我不认为你会找到任何东西,但值得一看。另请查找与ravendb相关的其他事件。检查其他日志(安全性,系统,配置)。

高级日志记录 :您还可以打开高级日志记录并捕获MSI安装的更多调试信息,如下所示:

msiexec.exe /i MySetup.msi /L*vx C:\Test.log

这应该捕获比当前日志更多的信息。您还可以将!添加到日志交换机,使其成为/L*vx!,这将连续写入日志而不是批量写入,从而确保崩溃不会丢失日志缓冲区。这会使安装很多变慢,但可以捕获重要的调试信息,以防有问题的自定义操作崩溃。

一些链接:

答案 1 :(得分:0)

基本问题似乎是自定义操作LicenseFileExists失败了。这并不意味着路径是错误的,但它确实意味着代码失败了。错误2896表示"操作失败"。

因此,在不了解代码所做的事情的情况下,不能真正诊断出它失败的原因。假设代码实际上完全正确,可能存在安全问题,因为在UI序列中运行的自定义操作不会以提升运行,并且可能不允许访问该文件。