Bonjour,
Je suis en train de tester une application Symfony 2.8.22 avec PHP 5.6.26 sous Windows avec IIS.
J’affiche 10 pages de l’application dans 10 instances de navigateurs, ces pages affichent des données de suivi de process et sont rafraichies toutes les 3 minutes.
Je laisse les 10 pages dans cette situation pendant une longue durée (1 jour ou plus).
Après ce délai, plusieurs pages sont souvent en erreur avec l’erreur décrite ci-dessous.
Voici des extraits des traces :
Le code provoquant l’exception est :[2017-09-26 02:32:47.669189] php.DEBUG: rename(C:\inetpub\wwwroot\MonProjet\app\cache\dev\appEBF5.tmp,C:\inetpub\wwwroot\MonProjet\app\cache\dev/appDevDebugProjectContainerUrlMatcher.php):
Accés refusé. (code: 5)
{"type":2,"file":"C:\\inetpub\\wwwroot\\MonProjet\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php","line":278,"level":28928} []
[2017-09-26 02:32:47.966006] request.CRITICAL: Uncaught PHP Exception Symfony\Component\Filesystem\Exception\IOException: "Cannot rename "C:\inetpub\wwwroot\MonProjet\app\cache\dev\appEBF5.tmp"
to "C:\inetpub\wwwroot\MonProjet\app\cache\dev/appDevDebugProjectContainerUrlMatcher.php"."
at C:\inetpub\wwwroot\MonProjet\vendor\symfony\symfony\src\Symfony\Component\Filesystem\Filesystem.php line 279
{"exception":"[object] (Symfony\\Component\\Filesystem\\Exception\\IOException(code: 0):
Cannot rename \"C:\\inetpub\\wwwroot\\MonProjet\\app\\cache\\dev\\appEBF5.tmp\" to \"C:\\inetpub\\wwwroot\\MonProjet\\app\\cache\\dev/appDevDebugProjectContainerUrlMatcher.php\".
at C:\\inetpub\\wwwroot\\MonProjet\\vendor\\symfony\\symfony\\src\\Symfony\\Component\\Filesystem\\Filesystem.php:279)"} []
Lig 278 : @rename($origin, $target)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 public function rename($origin, $target, $overwrite = false) { // we check that target does not exist if (!$overwrite && $this->isReadable($target)) { throw new IOException(sprintf('Cannot rename because the target "%s" already exists.', $target), 0, null, $target); } if (true !== @rename($origin, $target)) { throw new IOException(sprintf('Cannot rename "%s" to "%s".', $origin, $target), 0, null, $target); } }
Lig 279 = 2e throw
J’ai lu quelques articles qui donnent 2 pistes :
- la fonction PHP rename pourrait parfois mal fonctionner sous Windows
- IIS pourrait manquer de droits sur le dossier de l’application (ce dont je doute car certaines écritures fonctionnent)
Ce problème est-il connu ? Si oui, comment le résoudre ?
Merci
Partager