web-dev-qa-db-fra.com

ASP.NET 2.0 - Comment utiliser app_offline.htm

J'ai lu des informations sur le fichier app_offline.htm qui peut être placé à la racine d'une application .NET 2.0, ce qui va essentiellement fermer l'application et empêcher toute autre page d'être demandée.

J'ai placé le fichier à la racine et mon site se charge toujours. Je suis allé dans les documents par défaut dans IIS et je l’ai défini sur app_offline.htm et le site continue de se charger (c’est peut-être un problème de cache).

Quoi qu'il en soit, quelqu'un a-t-il rencontré des problèmes d'utilisation? Est-ce que je fais quelque chose de mal?

102
Jack Marchetti

Dans le passé, j’ai utilisé le truc extrêmement pratique app_offline.htm pour fermer/mettre à jour des sites sans aucun problème.

Assurez-vous de placer le fichier "app_offline.htm" à la "racine" du site Web que vous avez configuré dans IIS.

Assurez-vous également que le fichier est nommé exactement comme il se doit: app_offline.htm

En dehors de cela, il ne devrait y avoir aucune autre modification à apporter à IIS, car le traitement de ce fichier (avec ce nom spécifique) est géré par le runtime ASP.NET plutôt que par IIS lui-même. (pour IIS v6).

Sachez cependant que bien que placer ce fichier à la racine de votre site force l'application à "fermer" et à afficher le contenu du fichier "app_offline.htm", les requêtes existantes recevront toujours le vrai site web servi à eux. Seules les demandes new obtiendront le contenu app_offline.htm.

Si vous rencontrez toujours des problèmes, essayez les liens suivants pour plus d'informations:

App_Offline.htm de Scott Gu

App_Offline.htm et contournement de la fonctionnalité "IE Friendly Errors"

app_offline.htm arrêtera-t-il les requêtes en cours ou uniquement les nouvelles requêtes?

141
CraigTP

Assurez-vous que votre fichier app_offline.htm a une longueur minimale de 512 octets. Un app_offline.htm de zéro octet n'aura aucun effet.

UPDATE: Les versions plus récentes d'ASP.NET/IIS peuvent se comporter mieux que lorsque j'ai écrit ceci pour la première fois.

UPDATE 2: Si vous utilisez ASP.NET MVC, ajoutez les éléments suivants à web.config:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>
44
Mark Richman

Notez que cela se comporte de la même manière sur IIS 6 et 7.x, ainsi que .NET 2, 3 et 4.x.

Notez également que lorsque app_offline.htm est présent, IIS renverra ce code de statut http:

HTTP/1.1 503 Service Unavailable

Tout cela est par conception. Cela permet à votre équilibreur de charge (ou quoi que ce soit) de voir que le serveur est hors ligne.

14
Jonesome

Problème d'autorisation possible

Je sais que ce message est assez ancien, mais je me suis heurté à un problème similaire et mon fichier a été orthographié correctement.

J'ai initialement créé le fichier app_offline.htm à un autre emplacement, puis je l'ai déplacé à la racine de mon application. À cause de ma configuration, j'ai eu un problème d'autorisations.

Le site Web a agi comme s'il n'était pas là. La création du fichier dans le répertoire racine au lieu de le déplacer a résolu mon problème. (Ou vous pouvez simplement fixer l'autorisation dans propriétés-> sécurité)

J'espère que ça aide quelqu'un.

10
Jeremy A. West

Assurez-vous que app_offline.htm se trouve à la racine du répertoire virtuel ou du site Web dans IIS. 

2
Andrew Hare

Assurez-vous que les extensions de nom de fichier sont visibles dans l’Explorateur et que le nom de fichier est bien défini. 

app_offline.htm

ne pas 

app_offline.htm.htm

1
nPcomp

J'ai rencontré un problème très similaire à la question initiale qui m'a pris un peu de temps à résoudre.

Si quelqu'un d'autre travaille sur une application MVC et trouve son chemin dans ce fil, assurez-vous que vous avez un mappage générique avec le .NET aspnet_isapi.dll approprié défini. Dès que j'ai fait cela, mon app_offline.htm a commencé à se comporter comme prévu.


Étapes de configuration d'IIS 6

Dans IIS Propriétés de l'application, sélectionnez l'onglet Répertoire virtuel.

Sous Paramètres de l'application, cliquez sur le bouton Configuration.

Sous Cartes d'application générique, cliquez sur le bouton Insérer.

Entrez C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll, cliquez sur OK.

0
Peter Bernier