我对使用 WiX 工具集创建的 .msi 安装和启动的 Web 服务有疑问。
该服务可以在我迄今为止测试的所有机器上安装和启动(显示为在服务管理器中运行),但在某些机器上它无法访问(例如通过浏览器)并且没有显示在监听端口列表中机器(显示为“netstat -a”)。
我试图找出问题所在,但我对 Web 服务开发和配置并不十分熟悉。它是第三方服务,因此我不知道它在内部是如何工作的。对我来说,一个很好的起点是找出在执行 .msi 文件期间安装和启动服务时究竟会发生什么。也许我可以尝试在较低的层次上解决这个问题。
下面是我在 ServiceInstall-Element 中的代码:
<ServiceInstall
Id="ServiceID"
Type="ownProcess"
Vital="yes"
Name="ServiceName"
DisplayName="ServiceDisplayName"
Description="Lorem Ipsum"
Start="auto"
Account="LocalSystem"
ErrorControl="normal"
Interactive="no"
Arguments="action=run">
</ServiceInstall>
这个论点很重要——没有它,服务将无法启动或运行。也许其他人遇到了相同或类似的问题,可以帮助我。
预先感谢 - 每个提示都表示赞赏。
编辑一(15.04.18):
由于可能是特定服务的问题,我将在此处添加一些进一步的信息:
这是一个名为 CryptoLicensing 的第三方软件: http ://www.ssware.com/cryptolicensing/cryptolicensing_net.htm
该软件的一部分是特定程序,它充当许可证服务器并进行许可证注册,例如在客户的网络中。该服务可以作为 Windows 应用程序运行,也可以作为 Windows 服务安装和运行。在这两种情况下,它都应该在已安装机器上的(预)指定端口上进行侦听。每当我将 .exe 作为应用程序启动时,一切都按预期工作。该服务是可访问的(例如使用浏览器),并且可以从网络中的其他机器访问。当 .exe 作为服务安装并启动时,它不会在每台计算机上按预期工作。例如,如果我在笔记本电脑上安装并启动服务,它会在服务管理器中显示为正在运行,但在其分配的 URL 上无法访问(甚至在 localhost 上也无法访问),也无法在活动侦听端口中显示特定端口,例如使用“netstat -a”。该服务本身在没有任何错误消息的情况下启动,并且不会记录任何错误或异常,因为它似乎正在运行而没有任何问题。
我联系了供应商,但有时他不会很快回复,而且他的回复也不是很具体。
在问这个问题之前,我认为这是 Windows 用户权限和 WiX 安装程序的问题,但在这里讨论期间,我觉得这可能是服务本身的问题。我希望这条“新”信息有助于隔离和定位问题。
感谢迄今为止提供帮助的所有人!