Ajouts des erreurs HTTP <erreur>
Vue d’ensemble
L’élément <error>
de la collection <httpErrors>
ajoute un mappage erreur unique à la collection d’erreurs HTTP.
Compatibilité
Version | Notes |
---|---|
IIS 10.0 | L’élément <error> n’a pas été modifié dans IIS 10.0. |
IIS 8.5 | L’élément <error> n’a pas été modifié dans IIS 8.5. |
IIS 8.0 | L’élément <error> n’a pas été modifié dans IIS 8.0. |
IIS 7.5 | L’élément <error> n’a pas été modifié dans IIS 7.5. |
IIS 7.0 | L’élément <error> de la collection <httpErrors> a été introduit dans IIS 7.0. |
IIS 6.0 | La collection <httpErrors> remplace la section HttpErrors IIS 6.0 de l’objet de métabase IIsWebService. |
Programme d’installation
L’élément <error>
de la collection <httpErrors>
est inclus dans l’installation par défaut IIS 7.
Procédure
Comment ajouter une page d’erreur personnalisée
Ouvrez le Gestionnaire des services Internet (IIS) :
Si vous utilisez Windows Server 2012 ou Windows Server 2012 R2 :
- Dans la barre des tâches, cliquez sur Gestionnaire de serveur, cliquez sur Outils, puis sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows 8 ou Windows 8.1 :
- Maintenez la touche Windows enfoncée, appuyez sur la lettre X, puis cliquez sur Panneau de configuration.
- Cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Server 2008 ou Windows Server 2008 R2 :
- Cliquez sur Démarrer, placez le curseur sur Outils d’administration, puis cliquez sur Gestionnaire Internet Information Services (IIS).
Si vous utilisez Windows Vista ou Windows 7 :
- Dans la barre des tâches, cliquez sur Démarrer, puis sur Panneau de configuration.
- Double-cliquez sur Outils d’administration, puis double-cliquez sur Gestionnaire Internet Information Services (IIS).
Dans le volet Connexions, développez le nom du serveur, développez Sites, puis accédez au site Web ou à l’application pour lesquels vous souhaitez configurer des pages d’erreur customisées.
Dans la page Accueil, double-cliquez sur Pages d’erreur.
Dans le volet Actions, cliquer sur Ajouter...
Dans la boîte de dialogue Ajouter une page d’erreur personnalisée, sous Code d’état, tapez le numéro du code d’état HTTP pour lequel vous souhaitez créer un message d’erreur personnalisé.
Dans la section Action de réponse, effectuez l’une des opérations suivantes :
- Sélectionnez Insérer du contenu à partir d’un fichier statique dans la réponse d’erreur pour servir du contenu statique, par exemple, un fichier .html, pour l’erreur personnalisée.
- Sélectionnez Exécuter une URL sur ce site pour servir du contenu dynamique, par exemple, un fichier .asp pour l’erreur personnalisée.
- Sélectionnez Répondre avec une redirection 302 pour rediriger les navigateurs clients vers une autre URL qui contient le fichier d’erreur personnalisé.
Dans la zone de texte Chemin d’accès au fichier, tapez le chemin d’accès de la page d’erreur personnalisée si vous avez choisi Insérer du contenu à partir d’un fichier statique dans la réponse d’erreur ou l’URL de la page d’erreur personnalisée si vous utilisez Exécuter une URL sur ce site ou Répondre avec une redirection 302, puis cliquez sur OK.
Remarque
Si vous sélectionnez Exécuter une URL sur ce site, le chemin d’accès doit être un chemin d’accès relatif. Si vous sélectionnez Répondre avec une redirection 302, l’URL doit être une URL absolue.
Remarque
Les erreurs HTTP suivantes ne peuvent pas être personnalisées : 400, 403.9, 411, 414, 500, 500.11, 500.14, 500.15, 501, 503 et 505.
Configuration
Attributs
Attribut | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|
path |
Attribut de chaîne requis. Spécifie le chemin d'accès au fichier ou à l’URL qui est servi en réponse à l’erreur HTTP spécifiée par les attributs statusCode et subStatusCode. Si vous choisissez le mode réponse fichier, vous spécifiez le chemin d’accès de la page d’erreur personnalisée. Si vous choisissez le mode de réponse ExecuteURL, le chemin d’accès doit être une URL relative de serveur (par exemple, /404.htm). Si vous choisissez le mode de réponse Redirect, vous devez entrer une URL absolue (par exemple, www.contoso.com/404.htm ). |
||||||||
prefixLanguageFilePath |
Attribut de chaîne facultatif. Spécifie le segment de ligne initial lors de la génération du chemin d’accès pour une erreur personnalisée. Ce segment s’affiche avant les portions spécifiques à la langue du chemin d'accès à l’erreur personnalisée. Par exemple, dans le chemin C:\Inetpub\Custerr\en-us\404.htm, C:\Inetpub\Custerr est le préfixe prefixLanguageFilePath. |
||||||||
responseMode |
Attribut d’énumération facultatif. Spécifie la façon dont le contenu d’erreur personnalisé est retourné. L’attribut responseMode peut être l’une des valeurs possibles suivantes. Par défaut, il s’agit de File .
|
||||||||
statusCode |
Attribut uint obligatoire. Spécifie le numéro du code d’état HTTP pour lequel vous souhaitez créer un message d’erreur personnalisé. Les valeurs acceptables sont comprises entre 400 et 999. |
||||||||
subStatusCode |
Attribut int facultatif. Spécifie le numéro du code de sous-état HTTP pour lequel vous souhaitez créer un message d’erreur personnalisé. Les valeurs acceptables sont comprises entre -1 et 999. La valeur par défaut est -1 . |
Éléments enfants
Aucune.
Exemple Configuration
L’exemple de configuration suivant, lorsqu’il est inclus dans le fichier Web.config pour un site web ou une application, utilise l’attribut errorMode pour n’autoriser l’affichage de messages d’erreur détaillés que sur l’ordinateur local. Il utilise également l’attribut defaultResponseMode pour définir le mode de réponse pour le site ou l’application. L’exemple supprime ensuite le message d’erreur hérité pour le code d’état 500. Ensuite, il définit l’attribut prefixLanguageFilePath dans le répertoire où IIS doit rechercher une nouvelle page d’erreur personnalisée et définit l’attribut chemin d’accès sur 500.htm, le fichier qui contient le message d’erreur personnalisé.
<configuration>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
<remove statusCode="500" />
<error statusCode="500"
prefixLanguageFilePath="C:\Contoso\Content\errors"
path="500.htm" />
</httpErrors>
</system.webServer>
</configuration>
Exemple de code
Les exemples suivants ajoutent un nouveau fichier pour toutes les erreurs de code d’état 404 avec un sous-état de 5, que IIS retourne pour les erreurs « Séquence d’URL refusée ». Dans ces exemples, le chemin du préfixe est défini sur « %SystemDrive%\inetpub\custerr », et le nom de fichier est « 404.5.htm ».
AppCmd.exe
appcmd.exe set config -section:system.webServer/httpErrors /+"[statusCode='404',subStatusCode='5',prefixLanguageFilePath='%SystemDrive%\inetpub\custerr',path='404.5.htm']" /commit:apphost
Remarque
Vous devez veiller à définir le paramètre commit sur apphost
quand vous utilisez AppCmd.exe pour configurer ces paramètres. Cela valide les paramètres de configuration dans la section d’emplacement appropriée dans le fichier ApplicationHost.config.
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration config = serverManager.GetApplicationHostConfiguration();
ConfigurationSection httpErrorsSection = config.GetSection("system.webServer/httpErrors");
ConfigurationElementCollection httpErrorsCollection = httpErrorsSection.GetCollection();
ConfigurationElement errorElement = httpErrorsCollection.CreateElement("error");
errorElement["statusCode"] = 404;
errorElement["subStatusCode"] = 5;
errorElement["prefixLanguageFilePath"] = @"%SystemDrive%\inetpub\custerr";
errorElement["path"] = @"404.5.htm";
httpErrorsCollection.Add(errorElement);
serverManager.CommitChanges();
}
}
}
VB.NET
Imports System
Imports System.Text
Imports Microsoft.Web.Administration
Module Sample
Sub Main()
Dim serverManager As ServerManager = New ServerManager
Dim config As Configuration = serverManager.GetApplicationHostConfiguration
Dim httpErrorsSection As ConfigurationSection = config.GetSection("system.webServer/httpErrors")
Dim httpErrorsCollection As ConfigurationElementCollection = httpErrorsSection.GetCollection
Dim errorElement As ConfigurationElement = httpErrorsCollection.CreateElement("error")
errorElement("statusCode") = 404
errorElement("subStatusCode") = 5
errorElement("prefixLanguageFilePath") = "%SystemDrive%\inetpub\custerr"
errorElement("path") = "404.5.htm"
httpErrorsCollection.Add(errorElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var httpErrorsSection = adminManager.GetAdminSection("system.webServer/httpErrors", "MACHINE/WEBROOT/APPHOST");
var httpErrorsCollection = httpErrorsSection.Collection;
var errorElement = httpErrorsCollection.CreateNewElement("error");
errorElement.Properties.Item("statusCode").Value = 404;
errorElement.Properties.Item("subStatusCode").Value = 5;
errorElement.Properties.Item("prefixLanguageFilePath").Value = "%SystemDrive%\\inetpub\\custerr";
errorElement.Properties.Item("path").Value = "404.5.htm";
httpErrorsCollection.AddElement(errorElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set httpErrorsSection = adminManager.GetAdminSection("system.webServer/httpErrors", "MACHINE/WEBROOT/APPHOST")
Set httpErrorsCollection = httpErrorsSection.Collection
Set errorElement = httpErrorsCollection.CreateNewElement("error")
errorElement.Properties.Item("statusCode").Value = 404
errorElement.Properties.Item("subStatusCode").Value = 5
errorElement.Properties.Item("prefixLanguageFilePath").Value = "%SystemDrive%\inetpub\custerr"
errorElement.Properties.Item("path").Value = "404.5.htm"
httpErrorsCollection.AddElement errorElement
adminManager.CommitChanges()