1

我创建了一个 Datasnap 服务,使用 Bob Swart 的白皮书作为指南。我一直在使用 VCL Forms 应用程序作为服务器进行调试和成功部署。但是当我尝试部署服务版本时,它安装正常,然后我尝试启动服务并立即停止。事件日志中的错误表明该端口集已在使用中,我已经为 TCPServerTransport 和 HTTPService 尝试了不同的端口号,但没有任何乐趣。DSServer 未设置为自动启动,因为我想从配置文件中设置端口号。事件日志中显示的错误消息是:

服务启动失败:无法绑定套接字。地址和端口已经在使用中..

我还尝试在启动和执行时写入日志文件,但看起来好像还没有到这一步。

在我不得不恢复到我不想做的胖客户端之前,尽快需要解决方案。

谢谢

4

2 回答 2

1

如果您确定您配置的端口实际上是免费的并且没有被机器上的任何其他软件使用,那么可能有一些防病毒/安全软件正在运行,阻止所有软件侦听特定端口或除少数已配置端口外的任何端口。您收到的消息可能是防病毒/安全软件如何处理应用程序尝试开始侦听端口的症状之一。

于 2010-07-31T14:43:26.337 回答
1

首先从Sysinternals套件(现在由 Microsoft 运行)获取 TCPView 的副本,并使用它来监视哪个应用程序正在使用您要使用的端口。

我会大胆猜测,如果该应用程序作为一个独立的应用程序运行良好(正如您所说的那样)并且您尝试在服务中使用相同的端口,那么服务应用程序可能会在您没有意识到的情况下在启动时打开端口然后当您尝试手动打开端口时,应用程序发现它已在使用中。或者应用程序试图以某种方式打开端口两次。第一次成功,但可能由于事件或意外的代码路径,应用程序尝试第二次打开它并失败。TCPView 将有助于发现这一点。

于 2010-08-01T08:11:50.227 回答