FAQ TBarCode .NET
Utiliser TBarCode ASP.NET dans des fermes Web (IIS 7.0)
Utiliser TBarCode ASP.NET dans des fermes Web (IIS 7.0)
Si vous utilisez le contrôle Web TBarCode ASP.NET dans une ferme Web, vous pouvez rencontrer l'exception suivante :
Exception Type: System.ApplicationException Message: The requested image is no longer cached.
Le contrôle Web TBarCode .NET utilise l'objet HttpContext.Cache pour stocker l'image de code-barres générée. Comme les requêtes http sont réparties par équilibrage de charge au sein d'une ferme Web, il peut arriver qu'un contrôle Web spécifique reçoive une requête pour une image qui a été générée sur un serveur d'application différent (et n'est donc pas disponible dans son cache local).
Pour résoudre ce problème, vous pourriez
- Synchroniser l'objet HttpContext.Cache sur tous les serveurs de la ferme Web (= « caches distribués »). Cela pourrait se faire avec une programmation supplémentaire ou un logiciel tiers additionnel.
- ou simplement utiliser Client Affinity dans IIS 7.0 (recommandé)
Avec l'affinité client activée, toutes les requêtes sont marquées avec un cookie afin que les requêtes suivantes (du même client) soient acheminées vers le même serveur dans la ferme Web.
Voir Application Request Routing (étape 3 – Configurer l'affinité client)
Application Request Routing provides a client affinity feature that maps a client to a content server behind Application Request Routing for the duration of a client session. When this feature is enabled, the load balancing algorithm is applied only for the very first request from the client.![]()