J'ai un site Web fonctionnant sous IIS7. Afin de mieux expliquer mon problème, je vais le présenter dans un scénario simple. Supposons que j'ai deux pages web, index.php et report.php avec chacun des contenus comme suit:Le serveur ne répond pas pendant un script de longue durée
index.php
<?php echo "Hello World"; ?>
report.php
<?php sleep(60); //simulate a long running script like generating reports. ?>
Dites index.php est la page d'accueil de notre ec système de commerce électronique où les visiteurs vont visiter et report.php est la page où les gars dans la gestion des rapports rapports quand ils le souhaitent (le plus probable au cours de la journée). Le problème est lors de l'affichage des rapports qui prennent plusieurs minutes à générer, le serveur entier ne répondra plus. Les visiteurs qui consultent index.php n'obtiendront aucune réponse tant que les rapports n'auront pas été générés. Ceci est également applicable à ASP.NET. Existe-t-il des solutions de contournement pour cela?
Je ne m'attendrais pas à ce que cela arrive avec asp.net, car ce sont des threads différents qui répondent aux demandes. Je ne peux pas parler pour php si. Il pourrait s'agir d'un code partagé par toutes les requêtes qui bloquent, ce qui ferait bloquer toutes les requêtes. Si c'est le cas, alors ce code a vraiment besoin d'être refacturé. –
Le même problème se produit dans ASP.NET avec le scénario simple ci-dessus en utilisant toutefois System.Threading.Thread.Sleep (60000). –