的CouchDB不会安装为在Azure上的Windows VM服务

问题描述:

我以前在我的Windows Azure的VM(经典)安装的CouchDB不使用安装程序安装,CouchDB的-1.6.1_R16B02.exe从http://couchdb.apache.org/的CouchDB不会安装为在Azure上的Windows VM服务

今天下载的任何问题我已经卸载了现有的CouchDB安装和服务,并打算从头开始重新安装它。不幸的是,无论何时我现在运行安装程序,都无法创建Windows服务。更多信息:

  • 我运行安装程序和命令工具,管理员
  • 我已删除现有的使用SC命令服务,通过编辑注册表(试过这两种方法)
  • 我曾尝试创建使用CouchDB的安装程序运行以下命令安装后服务:

erlsrv.exe add "Apache CouchDB" -workdir "%COUCH%\bin" -onfail restart_always -args "-sasl errlog_type error -s couch +A 4 +W w" -comment "Apache CouchDB 1.6.1"

这似乎是创建服务(您可以在Windows服务看),但任何企图启动该服务将导致错误:

Windows could not start the Apache CouchDB service on Local Computer.

Error 1067: The process terminated unexpectedly.

  • 我试图卸载CouchDB的应用程序,再次使用安装程序重新启动服务器,重新安装的CouchDB。没有快乐。然后尝试运行命令来创建服务。仍然没有快乐。
  • 当我使用命令

    erlsrv list

我可以看到我一直在努力,在过去的添加服务。任何试图删除它们导致错误消息:

erosrv: Unable to remove service (not enough privileges?)

Error: The handle is invalid

(我用手柄由erlsrv list命令提供)

  • 有事件中的任何事件日志,我可以找到这解释了为什么这是失败

我如何获得CouchDB作为服务正确安装?

TL; DR:重新安装在一个不含空格的目录路径中,然后手动创建服务。

好吧,在我的谷歌搜索今天的某个时候,我碰到this answer这给了我线索,我应该安装在一个没有空格的路径。所以我的解决方案是:

  • 通过Windows控制面板卸载CouchDB应用程序。
  • 在任何其余的CouchDB安装中运行uninstall.exe并删除这些目录。
  • 使用SC命令删除现有服务。
  • 使用安装程序重新安装到C:\ CouchDB(注意:无空格!)。选择作为服务安装的选项(尽管这不起作用)。
  • 运行命令手动创建服务。请注意,我没有使用%COUCH%变量,它似乎并没有在这一点上我的系统上存在:

erlsrv.exe add "CouchDB" -workdir "C:\CouchDB\bin" -onfail restart_always -args "-sasl errlog_type error -s couch +A 4 +W w" -comment "CouchDB 1.6.1"

此命令终于正确地创建了CouchDB的一个Windows服务启动正确。浏览到http://localhost:5984/_utils/现在带我到了被褥用户界面。放松一下!