web-dev-qa-db-fra.com

Erreur HTTP 500.19 et code d'erreur: 0x80070021

J'ai une simple interface WebAPI créée par Visual Studio 2013. Cela fonctionne bien lorsque je l'exécute à partir de VS13, mais lorsque je copie le projet dans le répertoire local IIS, l'erreur suivante s'affiche.

Erreur HTTP 500.19 - Erreur interne du serveur La page demandée ne peut pas être accédé parce que les données de configuration associées pour la page sont invalide.

Informations d'erreur détaillées:

Module IIS Web Core

Notification BeginRequest

Handler Pas encore déterminé

Code d'erreur 0x80070021

Erreur de configuration Cette section de configuration ne peut pas être utilisée sur ce chemin. Cela se produit lorsque la section est verrouillée au niveau parent. Le verrouillage est soit par défaut (overrideModeDefault = "Deny"), soit défini explicitement par une balise d'emplacement avec overrideMode = "Deny" ou par le legs allowOverride = "false".

Fichier de configuration \?\C:\inetpub\wwwroot\APITeslin\web.config

Source de configuration:

36:   <system.webServer>  
37:     <handlers>  
38:       <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
169
Umar Abbas

A obtenu exactement la même erreur et est venu à cette question. Comme @SpaceBison l'a mentionné dans les commentaires, cette réponse décrit la solution - https://stackoverflow.com/a/12867753/404099 . Je l'ai repéré trop tard et il manque quelques étapes. C'est ce qui a fonctionné pour moi:

Windows Server 2012, IIS 8.5. Devrait fonctionner pour d'autres versions aussi.

  • Allez dans le gestionnaire de serveur, cliquez sur ajouter des rôles et des fonctionnalités.
  • Dans la section des rôles, sélectionnez: Serveur Web
    • Dans la sous-section Sécurité, choisissez tout (j'ai exclu Digest, les restrictions IP et l'autorisation d'URL car nous ne les utilisons pas)
    • Sous Développement d'applications, choisissez .NET Extensibility 4.5, ASP.NET 4.5 et les deux entrées ISAPI.
  • Dans la section Fonctionnalités, choisissez: NET 3.5, .NET 4.5, ASP.NET 4.5.
  • Dans la section Serveur Web, sélectionnez Serveur Web (tous), Outils de gestion (console de gestion IIS et service de gestion), Authentification Windows - si vous en utilisez un.
281
Ilia Barahovski

J'ai eu cette erreur en essayant d'héberger un service WCF dans une application ASP.NET vide. Toute la solution utilisait la plate-forme .NET 4.5, sur IIS 8.5 sous Windows 8.1 . Le but recherché était d'ouvrir "Activer ou désactiver des fonctionnalités Windows", accédez à la section WCF sous Services avancés ASP.NET 4.5. et vérifiez l'activation HTTP. Vous serez invité à redémarrer le système. Screen Shot

Cela devrait corriger le HTTP 500.19!

EDIT 11-FEB-2016 Je viens d'avoir un problème sous Windows 10 Pro, IIS 10, Il s'agissait cette fois d'un HTTP 404.0. Le correctif est toujours le même, activez "Activation HTTP" sous Fonctionnalités Windows -> Services avancés .NET Framework 4.6 -> Services WCF -> Activation HTTP

92
Sudhanshu Mishra

J'avais aussi le même problème, mais après avoir pris le cerveau d'assaut avec IIS et Google pendant de nombreuses heures. J'ai trouvé la solution… .. Cette erreur est due au fait que certains paramètres sont désactivés dans IIS applicationHost.config.

Voici les étapes de la solution:

  1. Allez à C:\Windows\System32\inetsrv\config\applicationHost.config et ouvrez le bloc-notes
  2. Modifier la valeur de clé suivante présente dans 

    • <section name="handlers" overrideModeDefault="Deny" /> changer cette valeur de "Refuser" à "Autoriser"

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> changer cette valeur de "Refuser" à "Autoriser"

Cela a fonctionné pour moi.

42
SeeTheC

Si vous exécutez IIS sur cet ordinateur pour la première fois, essayez d’exécuter l’outil d’enregistrement ASP.NET IIS (aspnet_regiis.exe).

Voici comment procéder: Si vous utilisez .net Framework v4, ouvrez l’invite de commande en tant qu’administrateur et changez de répertoire dans votre dossier de base .net framework en utilisant:

CD C:\Windows\Microsoft.NET\Framework\v4.0.30319

ou, si vous utilisez un ordinateur 64 bits, utilisez:

CD C:\Windows\Microsoft.NET\Framework64\v4.0.30319

lorsque vous avez accédé au répertoire approprié, exécutez l'outil d'inscription ASP.NET IIS à l'aide de:

aspnet_regiis -i

Si vous utilisez une version du framework .NET différente, remplacez simplement v4.0.30319 par le nom de dossier approprié.

J'espère que cela t'aides.

30
Ibrahim Dauda

J'ai résolu ceci en procédant comme suit:

WebServer(ISS)->WebServer->Application Development
add .NET Extensibility 3.5
add .NET Extensibility 4.5
add ASP.NET 4.5
add ISAPI Extensions
add ISAPI Filters

 enter image description here

18
GIOESCOM

Sous Windows 8.1, IIS 8.5, la solution pour moi consistait à enregistrer la version 4.5 à partir du panneau de commande: 

Programmes et fonctionnalités> Activer ou désactiver des fonctionnalités Windows> Services d'information> Services World Wide Web> Fonctionnalités de développement d'applications> Sélectionner ASP.NET 4.5

Cliquez sur OK.

7
Jon

Comme l'erreur identifie - "Cela se produit lorsque la section est verrouillée au niveau parent". Pour déverrouiller la section, utilisez appcmd.exe et exécutez la commande suivante:

%windir%\system32\inetsrv\appcmd.exe unlock config -section:system.webServer/handlers -commitpath:apphost

Pour plus d'informations sur le verrouillage de section et sur le contexte de configuration parent, consultez IIS documentation .

4
Taras Alenin

Dans notre cas, nous avons lutté avec cette erreur pendant plusieurs jours. Il se trouve que dans le panneau de configuration, les programmes activent ou désactivent les fonctionnalités de Windows. 

Nous avons sélectionné Internet Information Services, les services Web, les fonctionnalités de développement d’applications et nous avons vérifié l’ensemble des fonctionnalités associées à notre environnement de développement. Par exemple: ASP.NET 4.6. Extensibilité .NET 4.6, etc.

Ça marche!

2
Javier Livio

Dans mon cas, il y avait des règles pour IIS URL Rewrite module mais je n'avais pas ce module installé. Vous devriez vérifier votre web.config s'il y a des modules inclus mais non installés.

2
x-freestyler

Votre.config indique que vous utilisez l'authentification par formulaires - assurez-vous d'activer l'authentification par formulaires et l'authentification désactivée dans IIS dans le menu Authentification, pour le site Web en cours d'exécution dans IIS.

1
SpaceBison

Essayez de déverrouiller les paramètres de configuration IIS (7.5) appropriés au niveau du serveur, comme suit:

  1. Ouvrir IIS Manager
  2. Sélectionnez le serveur dans le volet Connexions
  3. Ouvrir Éditeur de configuration dans le volet principal
  4. Dans la liste déroulante Sections, sélectionnez la section à déverrouiller, par exemple. system.webServer> defaultPath
  5. Cliquez sur Déverrouiller l'attribut dans le volet de droite.
  6. Répétez l'opération pour tout autre paramètre que vous devez déverrouiller.
  7. Redémarrer IIS (facultatif) - Sélectionnez le serveur dans le volet Conncetions, cliquez sur Redémarrer dans le volet Actions.
1
Chris

Eh bien, nous utilisons Amazon Web Services et nous cherchons donc à utiliser des scripts et des programmes pour résoudre ce problème. J'ai donc été à la recherche d'un outil en ligne de commande. Alors d’abord j’ai essayé le truc de courir

c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i

mais parce que j'utilise un cloud basé sur Windows Server 2012, il s'est plaint

This option is not supported on this version of the operating system. Administrators should instead install/uninstall ASP.NET 4.5 with IIS8 using the "Turn Windows Features On/Off" dialog, the Server Manager management tool, or the dism.exe command line tool. For more details please see http://go.Microsoft.com/fwlink/?LinkID=216771.

et j'ai cherché sur Google et trouvé le fonctionnaire Page de support Microsoft KB2736284 . Il existe donc un outil en ligne de commande dism.exe. Alors j'ai essayé ce qui suit

dism /online /enable-feature /featurename:IIS-ASPNET45 

mais il s'est plaint et a donné une liste de noms de personnages à essayer. Je les ai donc essayés un par un et j'ai testé ma page Web WebAPI après chacune et cela a fonctionné après la dernière.

dism /online /enable-feature /featurename:IIS-ApplicationDevelopment
dism /online /enable-feature /featurename:IIS-ISAPIFilter 
dism /online /enable-feature /featurename:IIS-ISAPIExtensions 
dism /online /enable-feature /featurename:IIS-NetFxExtensibility45 

Et maintenant, je peux naviguer sur mon site WebAPI et voir les informations de l'API. Cela devrait aider quelques personnes. [Cependant, je ne suis pas encore complètement sorti du bois et je ne parviens pas à accéder au site Web de l'extérieur. Travaille toujours dessus.]

De plus, j’ai suivi quelques étapes précédentes en suivant les réponses d’autres personnes. Je peux confirmer que la délégation de fonctionnalités suivante doit être modifiée (bien que j'aimerais trouver un outil de ligne de commande pour ces applications).

In Feature delegation

Change 
'Handler Mappings' from Read Only to Read/Write

Change 
'Modules' from Read Only to Read/Write

Change 
'SSL Settings' from Read Only to Read/Write
0
S Meaden

Pour les applications .NET Core sur Windows Server (dans mon cas, 2012 avec IIS 10), cela fonctionnait après l'installation de l'offre d'hébergement .NET Core Windows Server ( link ).

0
Alex Klaus

Vérifiez si le serveur IIS a installé la fonctionnalité de réécriture d'URL. 
S'il n'est pas installé, assurez-vous que votre fichier web.config n'a pas la configuration liée à la réécriture d'URL 

<!-- Make sure don't have below config, if server have not installed url rewrite feature. -->
<rewrite>
  <rules>
    <rule name="Fail bad requests">
      <match url=".*"/> ...

Parfois, nous avons copié la configuration du serveur hérité et immédiatement déployé sur un tout nouveau serveur. Nous risquons donc de rencontrer ce type de problème 500.

0
Frank Myat Thu

J'ai corrigé avec anonymousAuthentication supprimé.
Il suffit de commenter dans votre configuration Web IIS

<security>          
    <!--
    <authentication>
        <anonymousAuthentication userName=""/>
    </authentication>
    -->
</security> 
0
Pit J

Veuillez <staticContent /> ligne et effacez-le du web.config.

0
Erdogan