2017-09-25 102 views
0

我正在將Zend Framework 3應用程序的DBAL遷移到Doctrine。數據檢索部分的遷移完成。數據保存仍然是Zend\Db驅動。Windows Server 2008 ZF3中的「每個套接字地址只有一個用法」錯誤

現在我想部署新版本的服務器,並得到這個錯誤:

[PDOException: SQLSTATE[HY000] [2002] Only one usage of each socket address (protocol/network address/port) is normally permitted. in 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嘗試創建新連接的地方。

由於這個問題之前沒有被觀察到,我想這與它的(部分)遷移到教義有關。也許應用程序不會關閉爲Zend\Db打開的數據庫連接,並嘗試使用與Doctrine完全相同的設置打開一個新連接。反之亦然:打開Doctrine的PDO連接,同時框架試圖爲Zend\Db打開一個新的連接。

如何解決此問題並使用Doctrine和Zend\Db

回答

0

我一直在用PDO運行它。我對它的研究表明,這與MySQL或PHP無關,但與Windows有關。你太快請求太多請求。當windows關閉一個端口時,它會將其置於time_wait狀態長達240秒(默認),並且該端口在time_wait狀態出現之前不能使用。

related to this stack overflow question from 2012:

相關問題