【问题标题】:Debugging Topshelf service that won't run under restrictive account调试无法在受限帐户下运行的 Topshelf 服务
【发布时间】:2010-12-02 19:56:59
【问题描述】:

我有一个使用 Topshelf 编写的 Windows 服务。我正在尝试将其配置为使用具有受限权限的 Windows 帐户运行,而不是使用 LocalSystem。这也是必要的,因为我想使用集成身份验证连接到数据库。

该服务在以 LocalSystem 运行(尽管使用包含凭据的数据库连接字符串)并以我的受限帐户(使用 runas)运行控制台应用程序时也可以工作。

但是,当我尝试启动服务时,服务控制管理器超时等待响应:

服务没有及时响应启动或控制请求。

我还在应用程序弹出事件日志中得到以下信息:

应用程序错误:异常未知软件异常 (0xc06d007e) 发生在位置 0x77e4bef7 的应用程序中。

应用程序所做的第一件事是写入日志文件,但是当我启动服务时它没有达到。如果我通过控制台运行,日志记录工作。

有什么建议我可能会遗漏或我接下来可以尝试什么?

【问题讨论】:

  • 我也遇到过这个问题。反复尝试启动服务失败,然后一次,它工作。这让我相信这是一个时间问题。不知道如何解决 - 抱歉!

标签: debugging windows-services topshelf


【解决方案1】:

查看 MSDN 文章 Debugging windows services,该文章描述了如何调试 Windows 服务。

【讨论】:

    【解决方案2】:

    我刚刚开始在一些用 .net 2.0 编写的服务上看到这一点。服务器启动时它们会正常启动,但如果我整天重新启动它们,它们将无法启动,并给出此错误消息。

    他们目前在具有管理员权限的域帐户下运行,但为了踢球,我将其切换到本地系统,并且服务正常启动。我停止了它,将它改回域帐户(重新输入密码),它又按预期正常启动了。

    不知道这算不算“修复”,但这对我有用。

    【讨论】:

      【解决方案3】:

      这个问题似乎与服务器(域控制器)而不是 TopShelf 有关。使用 .NET 服务组件构建的服务也表现出相同的行为。

      服务在不同的机器上成功运行(在同一个域中)。

      不幸的是,这无助于诊断问题,但给了我一个可以接受的解决方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-06
        • 2014-04-13
        • 2016-01-25
        • 2011-04-05
        • 1970-01-01
        • 1970-01-01
        • 2016-08-08
        相关资源
        最近更新 更多