2008-11-06 7 views
4

Nous déployons un site pour un client utilisant IIS demain. Je suis d'apporter le site au grand public (Désolé, nous mettons à jour le message) et permettre au client de tester le week-end après que nous effectuons la mise à niveau.Supprimer le site Web pour le public, mais laisser pour tester ... "Nous ne sommes pas ouverts"

Si c'est réussi, je l'ouvre à tout le monde - sinon, je reviens.

Quelle est la manière la plus simple de mettre un panneau "Nous ne sommes pas ouverts" pour le grand public, mais de laisser le reste ouvert aux testeurs?

Répondre

12

Rediriger via IIS. Créez un nouveau site Web dans IIS et mettez votre message "Désolé mise à jour" dans Default.aspx. Puis basculer les ports entre le site réel (va de 80, à quelque chose d'autre (6666)) et le site de «maintenance» (sur 80).

Puis dites à vos testeurs d'aller à votresite.com: 6666.

Ensuite, retournez le site réel à 80 après avoir décroché le site 'maintenance'.

+0

Cela a pour effet secondaire d'intercepter des références de serveur absolues incorrectes dans les URL à partir de fichiers de configuration, etc. (Ce qui peut être bon ou mauvais, selon votre point de vue.) –

+0

@Colonel, true .. l'autre (moins élégant) Je pensais à mettre une redirection dans le web.config ou la page de base. – Kon

2

Exiger que les testeurs se connectent. Vous pouvez même cacher la page de connexion de sorte que vous avez besoin d'un lien direct pour le voir. Ensuite, pour toutes les personnes non connectées, redirigez vers la page qui affiche votre message.

1

Certaines méthodes que je l'ai utilisé avant:

  • authentification Windows et/ou sous-domaines séparés pour le client à tester.
  • Désactiver l'accès au site Web anonyme dans IIS et donner à votre client un nom d'utilisateur/mot de passe combo pour tester le site Web.
  • Désactiver le document par défaut dans IIS et donner à votre client une URL absolue pour le fichier d'index principal.
2

Lancez un autre "site" dans IIS qui attrapera votre en-tête d'hôte pour votre site principal. Utilisez soit une page personnalisée 307/503/404 qui a "nous sommes en panne pour la maintenance" ou utilisez une sorte de réécriture d'URL pour rediriger les gens vers votre fichier statique unique.

basculez host-header-binding sur votre site réel vers un autre site, tel que dev.domain.com ou testing.domain.com que vos développeurs utilisent. Ou, bloquer par IP, et avoir votre page personnalisée "Non autorisé" dire aux visiteurs que votre bas à la maintenance.

Vous avez plusieurs options.

0

Nous avons généralement une page de connexion et un fichier d'inclusion sur toutes les pages du site (généralement la connexion à la base de données telle qu'elle est incluse dans tous les fichiers) qui vérifie une session connectée valide. Si vous n'avez pas ouvert de session, vous recevez un message disant que le site est en panne pour maintenance

5

Je pensais qu'il serait utile de mentionner la fonctionnalité "hors ligne" d'ASP.NET 2.0 +. (Oui, je me rends compte que le questionneur veut quitter l'application pour les tests, mais j'écris ceci pour les lecteurs plus tard qui pourraient venir ici avec des besoins différents).

Si vous voulez vraiment mettre l'application hors ligne pour tout le monde (par exemple pour faire la maintenance du serveur) il y a une option très simple. Tout ce que vous avez à faire dans ASP.NET 2.0 et plus est mis un fichier avec ce nom:

app_offline.htm 

... dans le répertoire racine de votre application ASP.NET. Mettez un message approprié "Désolé, revenez plus tard". C'est tout. L'environnement d'exécution ASP.NET fait le reste.

Détails sur Scott Guthrie's blog.

Questions connexes