2010-10-29 10 views
1

caveat: Je sais que cela est potentiellement une question de configuration du serveur, mais je pensais qu'il pourrait y avoir une réponse programmatique, ce qui explique pourquoi je suis annonce ici ...FastCGI sur IIS7 ... demandes simultanées multiples provenant de la même session utilisateur?

PHP est Apache, nos utilisateurs ont pu émettre plusieurs demandes simultanées (à partir de différents onglets dans le même navigateur, par exemple).

Depuis le passage à FastCGI sous IIS, il ne s'agit plus du comportement par défaut. Maintenant, lorsqu'un utilisateur lance une requête au serveur et que le navigateur attend une réponse, s'il ouvre un nouvel onglet et lance une autre requête, la nouvelle requête n'est pas traitée par IIS tant que la requête précédente n'est pas complétée par IIS.

Si l'utilisateur ouvre un navigateur différent et se connecte (qui lance une nouvelle session pour cet utilisateur), des demandes simultanées sont possibles.

Ma question est: existe-t-il un moyen de configurer FastCGI/IIS7 qui permettra plusieurs demandes simultanées de la même session utilisateur? Sinon, existe-t-il une alternative qui permettrait cela?

Répondre

3

Le problème est probablement le mécanisme de session. Les sessions PHP, par défaut, puisqu'elles utilisent le système de fichiers, doivent attendre que le fichier de session soit fermé avant de pouvoir les ouvrir à nouveau. Par conséquent, les demandes suivantes pour la même session attendent des demandes antérieures, ou pour donner un autre exemple en plus des vôtres, si vous aviez une page de frameset (shudder) avec trois cadres, chacun référençant la session, ils chargeraient tous un à un temps, car chaque page devrait attendre le mécanisme de la session.

Solutions possibles:

  • Dès que vous avez terminé avec la session, appelez session_write_close()
  • Mettre en oeuvre un gestionnaire DB personnalisé qui utilise la base de données au lieu du système de fichiers.
+0

Merci pour votre réponse, mais est-ce expliquer pourquoi il a travaillé sur Apache, et ne fonctionne pas sur IIS ? (Le script n'a pas changé) –