【问题标题】:TortoiseHg web server says it's stopped even though it's still runningTortoiseHg 网络服务器说它已经停止,即使它仍在运行
【发布时间】:2012-06-01 23:12:14
【问题描述】:

当我右键单击我的 Hg 文件夹并选择 TortoiseHg > Web 服务器 时,我可以毫无问题地在端口 7999 上启动 Web 服务器。然后我关闭了那个对话框。如果我从命令提示符运行netstat -a -o,我可以看到thgw.exe 的实例正在运行并在端口7999 上侦听(即使在关闭对话框之后)。具有讽刺意味的是,在任务管理器中thgw.exe 进程被称为“用于 Mercurial SCM 的 TortoiseHg GUI 工具”,即使没有运行 GUI。

问题

如果我通过 TortoiseHg > WebServer 再次打开该对话框,它会报告状态为“已停止”,并且 开始 按钮已启用。这是不正确的,因为端口仍在侦听。如果我单击开始按钮,我会按预期在日志中收到此消息:

abort: cannot start server at ':7999': 每个套接字地址(协议/网络地址/端口)通常只允许使用一次

问题

  1. 那么为什么 TortoiseHg 没有意识到现有的thgw.exe 正在端口上运行?

  2. 除了 netstat 和任务管理器之外,有没有更好的方法来检查 TortoiseHg 是否正在侦听 Web 端口?还要了解哪个端口代表哪个文件夹?

  3. 我无法停止 Web 服务器,那么您应该如何在不从任务管理器中杀死 TortoiseHg Web 服务器的情况下正常关闭它?这对我的生产源代码控制系统来说似乎是一件可怕的事情!

【问题讨论】:

    标签: webserver tortoisehg


    【解决方案1】:

    当点击Serve窗口的Close按钮时,窗口并没有真正关闭,而是将自身最小化到通知区域。请参阅下面屏幕截图中的地球图标:

    如果您单击该图标,则会出现原来的 Serve 窗口,其中实际上禁用了 Start 按钮,而启用了 Stop。您可以从那里停止服务器。

    此行为已在 TortoiseHg 2.4、Windows 7 上进行了测试。

    我在这里看到的唯一问题是,当您选择适当的菜单项时,原始窗口没有打开。

    另请参阅 TortoiseHg 错误跟踪器上的 issue 1845

    【讨论】:

    • 非常感谢@Helgi,这回答了我的问题!现在我在托盘中看到了我的图标,我正在追踪一个新问题,即我的一些服务似乎是由不同的用户启动的,因此它们并没有全部显示在我的托盘中。显然,我需要就应该使用的帐户提出最佳做法,但这是一个单独的问题。
    猜你喜欢
    • 1970-01-01
    • 2011-04-17
    • 2021-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多