6
votes

Est-il possible d'utiliser le cache dans Webservice?

Dans mon webapplication, j'ai des valeurs précalculées qui sont stockées dans la page.cache. À son moment, je dois déplacer cette fonctionnalité sur Webservice.

Donc, j'ai besoin d'introduire une fonctionnalité similaire dans WebService - Calculez des valeurs sur le premier appel à la méthode Web et stockez-la dans le cache.
Est-il possible de mettre des valeurs dans le cache (non en application ou de session - je dois purger ces valeurs après un intervalle de temps) de Webservice?


3 commentaires

Pas dans l'application ou la session Quel cache souhaitez-vous utiliser, un nouveau?


Comme vous le voyez dans les réponses ci-dessous - il y a quelque chose comme vieux, connu 'cache' :)


Oui, si vous avez une question, essayez de déterminer quelles étaient vos exigences. Il y a le cache d'exécution ou vous pouvez créer votre propre. Vous pouvez également utiliser l'expiration du rappel.


4 Réponses :


6
votes

En bref - Oui, vous pouvez utiliser la mise en cache dans les services Web. Vous devez choisir la mise en œuvre du cache correcte basée sur la mise en œuvre du service. Par exemple, si vous utilisez des services Web ASP.NET, vous pouvez probablement utiliser ASP.NET Cache - Disponible via Httpcontext.current.cache .

Si vous utilisez des services Web WCF, vous devrez peut-être utiliser d'autres bibliothèques (BTW, ASP.NET Web Services sont obsolètes. Je vais donc suggérer des services Web WCF de toute façon). Si les services WCF sont marqués en tant que compatible ASP.NET, l'infrastructure ASP.NET et son cache seront disponibles. Mais vous avez le choix d'accueillir des services WCF avec l'intégration ASP.NET et dans ce cas, vous devez probablement examiner différentes API de mise en cache - par exemple, System.Runtime.caching Si vous utilisez .NET 4 (voir un Tutoriel rapide pour l'utilisation du cache en mémoire) sinon vous pouvez essayer Bloc d'application de mise en cache .


0 commentaires

2
votes

Vous devriez pouvoir utiliser: xxx

à l'élément de cache pour un intervalle de temps spécifié.


0 commentaires

8
votes

Vous pouvez toujours accéder au cache via le statique HTTPRuntime .Cache propriété, même si vous n'avez pas de httpContext pour le moment.


1 commentaires

La façon la plus simple - c'est ce que je cherchais.



1
votes

Reportez-vous Stratégies de mise en cache de service Web XML

Il semble être un peu vieux mais bon article. J'espère que vous pourrez trouver ce que vous recherchez.


0 commentaires