【问题标题】:C# - WiX windows serviceC# - WiX Windows 服务
【发布时间】:2012-09-12 15:55:10
【问题描述】:

我有一个 WiX 安装项目,它获取 c# windows 服务的输出。 我安装了项目并正确创建了服务(在 services.msc 中),我可以在任务管理器中看到该过程。

我的 Windows 服务是一个绑定到 IP:PORT 并仅侦听连接的服务器。

当我使用 WiX 安装服务时,IP:PORT 的绑定似乎没有发生,但没有给出错误。我检查了 netstat,但在列表中没有看到 IP:PORT。

另一方面,当我使用 InstallUtil 时,它可以正常工作。

我是在 WiX 中做错了什么,还是我需要在我的服务中进行更改才能使其正常工作?

使用 .NET 4.0

谢谢!

【问题讨论】:

    标签: c# windows-services wix


    【解决方案1】:

    假设相同的数据集,无论是使用SC 命令、ServiceInstall Table 还是InstallUtil 启动的安装程序类自定义操作,最终状态都应该相同。

    因此,要么数据集不同(用户名、密码等),要么您在自定义操作中完成了其他注册代码,而 ServiceInstall 表未表示。

    如果不观察虚拟机或查看安装程序自定义操作代码,很难进一步排除故障。我可以说,这些年来我已经安装了数百个使用 .NET 编写的 Windows (NT) 服务,而且 ServiceInstal 的功能更加强大。

    【讨论】:

    • 我想回答,但由于我的名声,我不能回答。这是我在粘贴箱中的答案:pastebin.com/GtxQBvND
    • 基于它看起来你正在创建一个服务并创建一个事件日志/事件源。您必须在 WiX 中使用 Util 扩展并声明 EventSource 元素才能执行此操作。如果没有事件源,您的服务可能会在启动时引发异常。见wix.sourceforge.net/manual-wix3/util_xsd_eventsource.htm
    • 好点。我的 WiX 中没有 EventSource。但是,即使添加了它,它仍然没有约束力。我真的很困惑......
    • 抱歉,需要详细的分析和故障排除才能解决这些问题。您的原因/解决方案将非常具体,因此很难从这里回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多