Windows Server 2008上ZF3中的“每个套接字地址只有一次使用”错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows Server 2008上ZF3中的“每个套接字地址只有一次使用”错误相关的知识,希望对你有一定的参考价值。

我正在将Zend Framework 3应用程序的DBAL迁移到Doctrine。完成数据检索部分的迁移。数据保存仍然是Zend\Db驱动。

现在我想将新版本部署到服务器并收到此错误:

[PDOException:SQLSTATE [HY000] [2002]通常只允许使用每个套接字地址(协议/网络地址/端口)。在D:\ Path \ to \ my-project \ vendor \ zendframework \ zend-db \ src \ Adapter \ Driver \ Pdo \ Connection.php:266

我的本地Debian虚拟机上不会发生错误,但只有在Windows Server上运行PHPUnit时才会发生。

刚刚看了一下Zend\Db\Adapter\Driver\Pdo\Connection.php:266。这是Zend\Db尝试创建新连接的地方。

由于之前没有观察到这个问题,我认为它与(部分)迁移到Doctrine有关。也许应用程序没有关闭为Zend\Db打开的数据库连接,并尝试打开一个与Doctrine完全相同的设置的新连接。反之亦然:打开Doctrine的PDO连接,同时框架尝试为Zend\Db打开一个新的连接。

如何解决这个问题并使用Doctrine和Zend\Db

答案

我也一直在使用PDO。我对它的研究表明,这与mysql或PHP无关,但与Windows有关。你提出的请求太快了。当Windows关闭一个端口时,它将它置于time_wait状态最多240秒(默认),并且该端口在超出time_wait状态之前不能使用。

related to this stack overflow question from 2012:

以上是关于Windows Server 2008上ZF3中的“每个套接字地址只有一次使用”错误的主要内容,如果未能解决你的问题,请参考以下文章

Windows Server 2008 中的 WMI 错误(WMI 提供程序)

在 asp.net 中的 windows server 2008 R2 上的 PDF 缩略图

怎么在windows server2008上建立网站

在Windows Server 2008上安装Tomcat 7作为服务

Microsoft Windows Server 2008 R2 中的 Microsoft Media Foundation

64 位 windows server 2008 中的 32 位 informix 驱动程序不可用