VisualSVN Server 的 apache 无法通过 TCP 端口启动

VisualSVN Server 的 apache 无法通过 TCP 端口启动

由于某种原因,在我的 Windows XP 工作站上将 SSH Tectia 客户端从 v6.0 升级到 6.1 后,VisualSVN 2.0.7 无法在重启后启动其 Apache 服务。

Event Type: Information
Event Source:   VisualSVN Server 2.0
Event Category: Apache 
Event ID:   1000
Date:       9/30/2009
Time:       3:37:48 PM
User:       N/A
Computer:   4-J25A
Description:
Disabled use of AcceptEx() WinSock2 API


Event Type: Error
Event Source:   VisualSVN Server 2.0
Event Category: Apache 
Event ID:   1002
Date:       9/30/2009
Time:       3:37:48 PM
User:       N/A
Computer:   4-J25A
Description:
alloc_listener: failed to get a socket for (null)
(OS 10106) The requested service provider could not be loaded or initialized.  


Event Type: Error
Event Source:   VisualSVN Server 2.0
Event Category: Apache 
Event ID:   1000
Date:       9/30/2009
Time:       3:37:48 PM
User:       N/A
Computer:   4-J25A
Description:
Syntax error on line 25 of C:/Program Files/VisualSVN Server/conf/httpd.conf:


Event Type: Error
Event Source:   VisualSVN Server 2.0
Event Category: Apache 
Event ID:   1000
Date:       9/30/2009
Time:       3:37:48 PM
User:       N/A
Computer:   4-J25A
Description:
Listen setup failed

如果我直接启动 VisualSVNServer.exe apache 进程,它可以工作并接受请求,但 VisualSVN 管理控制台仍然认为该服务已停止。我对 Windows 版本的 Apache 不够熟悉,无法理解是什么阻止它保护其指定的 8443 端口(或者可以是任何其他端口号)?

答案1

我尝试修复并重新安装 VIsualSVN Server,但无济于事。只有在卸载 SSH Tectia Client 后,VisualSVN Server 的 apache 才可以再次正常启动。之后安装 SSH Tectia Client 似乎不会再出现问题。希望一直如此。

答案2

我解决了 VisualSVN Server 安装问题。我发现了许多错误,包括上面的错误。我运行 VisualSVN Server 很长时间了,但最近更新 Windows 并重新启动后,我的服务器没有恢复。支持人员最终将其恢复在线,但 SVN 服务器没有运行,我无法启动它,所以我想我只需升级它并让安装修复任何问题。我想可能是硬盘损坏了,这样就可以修复了。

我最终了解到,服务器上的第二个 IP 地址不再配置。之前我将 SVN/Apache 服务器配置为使用不再存在的特定 IP 地址。

[HKEY_LOCAL_MACHINE\SOFTWARE\VisualSVN\VisualSVN Server]

该注册表项正是指定缺失 IP 地址的注册表项,并且可能导致我的所有问题。一旦我将该 IP 地址添加为附加 IP 地址,我就能成功运行安装并从我的 SVN 客户端访问服务器。

此注册表项具有 S​​erverBinding 和 ServerName 的值,必须使用这些值才能启动 Apache。不幸的是,VisualSVN Server 安装过程不允许我查看或更改 IP 地址或服务器名称。这可以省去很多麻烦,并揭示我遇到麻烦的真正原因。

至于在具有 2 个 IP 地址的同一台服务器上管理 IIS 和 Apache,您需要告诉 IIS 不要使用第二个 IP 地址。以下命令可实现此目的。

netsh http delete iplisten ipaddress=333.333.333.333

显然,这是一个假的 IP 地址。将其替换为您的第二个 IP 地址。下一个命令将显示 IIS 被允许使用的 IP 地址。

netsh http show iplisten

您可能需要重新启动 IIS 或重新启动计算机才能成功应用这些更改。Windows 在启动周期的早期分配列出的 IP 地址的控制权,因此您需要确保它们未被使用,以便 Apache 可以使用它们。

如果再次遇到问题,请仔细检查服务器是否配置了第二个 IP 地址。我遇到的所有问题都只是由于缺少 IP 配置。

相关内容