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" />
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.
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.
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
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:
C:\Windows\System32\inetsrv\config\applicationHost.config
et ouvrez le bloc-notesModifier 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.
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.
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.
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 .
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!
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.
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.
Essayez de déverrouiller les paramètres de configuration IIS (7.5) appropriés au niveau du serveur, comme suit:
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
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 ).
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.
J'ai corrigé avec anonymousAuthentication supprimé.
Il suffit de commenter dans votre configuration Web IIS
<security>
<!--
<authentication>
<anonymousAuthentication userName=""/>
</authentication>
-->
</security>
Veuillez <staticContent />
ligne et effacez-le du web.config.