TortoiseHg网络服务器表示即使它仍在运行,它也会停止

时间:2012-06-01 23:12:15

标签: webserver tortoisehg

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

问题

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

  

abort:无法在':7999'启动服务器:通常只允许使用每个套接字地址(协议/网络地址/端口)

问题

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

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

  3. 我无法阻止网络服务器,所以你怎么能优雅地关闭TortoiseHg网络服务器而不从任务管理器中删除它?对我的生产源控制系统来说,这似乎是一件可怕的事情!

1 个答案:

答案 0 :(得分:4)

单击服务窗口的关闭按钮时,窗口实际上并未关闭,而是将自身最小化到通知区域中。请参阅以下屏幕截图中的地球图标:

Serve window icon in the notification area

如果您点击该图标,则会显示原始服务窗口,其中开始按钮实际已停用,并且停止已启用。您可以从那里停止服务器。

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

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

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