Erreur 403 lorsque vous chargez un fichier volumineux à l’aide d’une requête ASP dans Internet Information Services

Cet article vous aide à résoudre le problème qui se produit lorsque vous utilisez une demande Active Server Pages pour charger un fichier volumineux sur un ordinateur sur lequel Internet Information Services (IIS) 8.0 ou version ultérieure est installé.

Version du produit d’origine : Internet Information Services
Numéro de la base de connaissances d’origine : 327659

Symptômes

Importante

Cet article contient des informations sur la modification de la métabase. Avant de modifier la métabase, vérifiez que vous disposez d’une copie de sauvegarde que vous pouvez restaurer en cas de problème. Pour plus d’informations sur la procédure à suivre, consultez la rubrique d’aide sur la sauvegarde/restauration de la configuration dans Microsoft Management Console (MMC).

Lorsque vous utilisez une requête ASP (Active Server Pages) pour charger un fichier volumineux sur un ordinateur sur lequel est installé Internet Information Services (IIS) 8.0 ou version ultérieure, le chargement peut échouer. Vous pouvez également recevoir une réponse d’erreur 403 ou un message d’erreur similaire à l’un des éléments suivants :

  • Message d’erreur 1

    Erreur d’objet de requête « ASP 0104 : 80004005 » Opération non autorisée

  • Message d’erreur 2

    007~ASP 0104~Opération non autorisée

  • Lorsque vous publiez un grand nombre de données de formulaire sur une page ASP, vous pouvez recevoir un message d’erreur semblable au suivant :

    L’erreur « 80020009 » exception s’est produite

En outre, le chargement du fichier peut échouer lorsque vous utilisez la Response.binaryWrite méthode .

Vous rencontrez un ou plusieurs de ces symptômes, même si le même chargement de fichier fonctionnait dans les versions antérieures d’IIS.

Cause

Ce problème se produit si un Content-Length en-tête est présent et si l’en-tête Content-Length spécifie une quantité de données supérieure à la valeur de la AspMaxRequestEntityAllowed propriété dans la métabase IIS. La valeur par défaut de la AspMaxRequestEntityAllowed propriété est de 204 800 octets.

Remarque

Cette propriété de métabase a été incluse pour la première fois dans la mise à jour cumulative d’octobre 2002 pour IIS. Cette propriété de métabase est incluse dans une installation par défaut d’IIS 8.0 ou versions ultérieures.

Résolution

Avertissement

Si vous modifiez la métabase de manière incorrecte, vous risquez de provoquer de graves problèmes qui peuvent vous obliger à réinstaller n’importe quel produit qui utilise la métabase. Microsoft ne peut pas garantir que les problèmes qui résultent si vous modifiez la métabase de manière incorrecte peuvent être résolus. Modifiez la métabase à vos propres risques.

Remarque

Sauvegardez toujours la métabase avant de la modifier.

Pour résoudre ce problème, modifiez la valeur de la AspMaxRequestEntityAllowed propriété pour définir le nombre maximal d’octets autorisés dans le corps d’entité d’une requête ASP. Pour cela, procédez comme suit :

  1. À l’invite de commandes, tapez cd drive :\inetpub\adminscripts, puis appuyez sur Entrée.

    Remarque

    Dans cette commande pour modifier les dossiers, lecteur est un espace réservé pour le disque dur sur lequel IIS est installé.

  2. À l’invite de commandes, tapez la commande cscript adsutil.vbs set w3svc/ASPMaxRequestEntityAllowed size, puis appuyez sur Entrée.

    Remarque

    Dans cette commande, size est un espace réservé pour le chargement de la plus grande taille de fichier que vous souhaitez autoriser. La valeur maximale est 1 073 741 824 octets. Définissez cette valeur sur la valeur la plus faible possible qui autorise les fonctionnalités souhaitées.

  3. À l’invite de commandes, tapez la commande iisreset, puis appuyez sur Entrée.

Informations supplémentaires

La AspMaxRequestEntityAllowed propriété spécifie le nombre maximal d’octets autorisés dans le corps d’entité d’une requête ASP. Si un Content-Length en-tête est présent et si l’en-tête Content-Length spécifie une quantité de données supérieure à la valeur de la AspMaxRequestEntityAllowed propriété, IIS renvoie une réponse d’erreur 403. La AspMaxRequestEntityAllowed propriété s’applique uniquement aux PUT requêtes et aux POST requêtes. La AspMaxRequestEntityAllowed propriété ne s’applique pas aux GET requêtes. Étant donné que cette propriété de métabase s’applique uniquement à ASP, les autres extensions ISAPI (Internet Server API) ne sont pas affectées.

La AspMaxRequestEntityAllowed propriété est liée en fonction à la MaxRequestEntityAllowed propriété . Toutefois, la AspMaxRequestEntityAllowed propriété est spécifique aux requêtes ASP. Vous pouvez définir la propriété sur MaxRequestEntityAllowed1 mégaoctet (Mo) au niveau du service WWW (World Wide Web Publishing Service). Ensuite, vous pouvez définir la AspMaxRequestEntityAllowed propriété sur une valeur inférieure si vous savez que vos applications ASP spécifiques gèrent une plus petite quantité de données.