Comment désactiver le serveur de mise en cache côté sur IIS 7.5 (asp net mvc3)

J'ai du mal avec mon installation IIS concernant la mise en cache, voici une brève description de mon problème:

Je suis en train de faire un site pour les mobiles et non-mobiles, le partage de la même contrôleurs. C'est à dire: monsite/page va servir ce soit monsite/page.cshtml, ou monsite/M/page.cshtml, en fonction de l'appareil.

Le hic, c'est, il a bien fonctionné avec mon local et l'intégration de l'environnement (cassiini et iis 6), mais sur une autre machine (2008r2/iis 7.5), apparemment il y a un agressif côté serveur politique de mise en cache:

  • Si j'ai accès au site web à partir d'un ordinateur de bureau, j'ai la bonne pages (version bureau)
  • Si maintenant, je utiliser mon téléphone portable pour accéder au site, je vais avoir la version de bureau, ce qui implique d'un côté serveur cache, mon téléphone n'est pas en utilisant le même réseau).

Au contraire, si je devais redémarrer le serveur et accéder au site à l'aide de mon téléphone d'abord, puis je vais avoir la version mobile sur mon bureau (uniquement pour les pages que j'ai déjà visité, bien sûr).

J'ai essayé les 2 solutions jusqu'à présent:

Désactivation OutputCache à partir de mon site Web.config:

<httpModules>
  [..]
  <remove name="OutputCache" />
</httpModules>

Et décochez l'option "Activer la mise en cache de sortie" dans "mise en Cache de Sortie" pour mon site dans IIS.

Ce qui m'énerve c'est que je n'ai pas ce problème avec mon autre serveur (iis 6.0), bien que la mise en cache est activé sur celui-ci, qui m'amène à penser qu'elle est liée à iis 7 de la mise en cache plus.

Ma question est simple: comment désactiver le serveur de mise en cache côté sur IIS 7.5?

Merci d'avance pour votre iis lumières!

Trouvé!

Désolé les gars, vous ne pouviez pas vraiment deviner que l'un, j'étends RazorViewEngine (en fait j'ai utilisé un échantillon mobile mvc3 application de modèle), et cette classe remplace FindView, il est censé prendre en compte un useCache paramètre, mais apparemment, peu importe comment je configurer IIS, il a été défini à true avec iis7. Je l'ai mis à faux partout. Je vais regarder dans le réglage de ce paramètre demain.

public override ViewEngineResult FindView(ControllerContext controllerContext, string viewName, string masterName, bool useCache)

Merci pour votre aide les gars, j'ai une bonne compréhension de toutes les possibilités de mise en cache avec IIS maintenant ;). Il est intéressant de noter que celle-ci se comporte différemment avec IIS 7.0 (IIS6 et Cassiini étaient compatibles).

Edit:

Plus d'infos: http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201 , il est lié à debug/release de travail de FindView.

C'était mon problème exact: http://aspnet.codeplex.com/workitem/8201?PendingVoteId=8201

difficile à deviner sans le savoir vous étendez le moteur : )
J'ai oublié d'ajouter que, dans l'équation, je n'ai pas suspect MVC peut être mise en cache de la vue de la résolution elle-même.

OriginalL'auteur troebr | 2011-11-28