it-swarm.com.de

HTTP-Fehler 500.19 und Fehlercode: 0x80070021

Ich habe eine einfache WebAPI, die von Visual Studio 2013 erstellt wurde. Sie funktioniert gut, wenn ich sie von VS13 aus ausführe, aber wenn ich das Projekt in local IIS kopiere, wird mir der folgende Fehler angezeigt.

HTTP-Fehler 500.19 - Interner Serverfehler Die angeforderte Seite darf nicht .__ sein. zugegriffen, da die zugehörigen Konfigurationsdaten für die Seite .__ sind. ungültig.

Detaillierte Fehlerinformationen:

Modul IIS Web Core

Benachrichtigung BeginRequest

Handler Noch nicht bestimmt

Fehlercode 0x80070021

Config Error Dieser Konfigurationsabschnitt kann nicht unter diesem Pfad verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Die Sperrung erfolgt entweder standardmäßig (overrideModeDefault = "Deny") oder explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem Legacy allowOverride = "false" festgelegt.

Konfigurationsdatei \?\C:\inetpub\wwwroot\APITeslin\web.config

Konfigurationsquelle:

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

Hat genau den gleichen Fehler und kam zu dieser Frage. Wie @SpaceBison in Kommentaren erwähnt, beschreibt diese Antwort die Lösung - https://stackoverflow.com/a/12867753/404099 . Ich habe es zu spät entdeckt und es fehlen einige Schritte. Das hat bei mir funktioniert:

Windows Server 2012, IIS 8.5. Sollte auch für andere Versionen funktionieren.

  • Gehen Sie zum Server-Manager und klicken Sie auf Rollen und Funktionen hinzufügen
  • Wählen Sie im Rollenbereich Folgendes aus: Webserver
    • Wählen Sie im Sicherheitsbereich alles aus (Ich habe Digest, IP-Einschränkungen und URL-Autorisierung ausgeschlossen, da wir sie nicht verwenden.)
    • Wählen Sie unter Anwendungsentwicklung .NET Extensibility 4.5, ASP.NET 4.5 und beide ISAPI-Einträge
  • Wählen Sie im Funktionsabschnitt aus: NET 3.5, .NET 4.5, ASP.NET 4.5
  • Wählen Sie im Webserver-Bereich Folgendes aus: Webserver (alle), Verwaltungstools (IIS-Verwaltungskonsole und Verwaltungsdienst), Windows-Authentifizierung - falls Sie eine davon verwenden
281
Ilia Barahovski

Ich habe diese Fehlermeldung erhalten, als ich einen WCF-Dienst in einer leeren ASP.NET-Anwendung hosten wollte. Die gesamte Lösung verwendete die .NET 4.5-Plattform unter IIS 8.5 unter Windows 8.1 ..__ Die Option "Windows-Funktionen ein- oder ausschalten" sollte geöffnet werden, gehen Sie zum WCF-Abschnitt unter ASP.NET 4.5 - Erweiterte Dienste und überprüfen Sie die HTTP-Aktivierung. Sie werden aufgefordert, das System neu zu starten. Screen Shot

Dies sollte das HTTP 500.19 beheben!

EDIT 11-FEB-2016 Habe gerade ein Problem mit Windows 10 Pro, IIS 10, bekommen. Diesmal war es ein HTTP-404.0. Das Update ist immer noch das gleiche. Aktivieren Sie "HTTP-Aktivierung" unter Windows-Funktionen -> Erweiterte Dienste von .NET Framework 4.6 -> WCF-Dienste -> HTTP-Aktivierung

92

Ich bekam auch das gleiche Problem, aber nach einem Brainstorming mit IIS und Google für viele Stunden. Ich habe die Lösung herausgefunden. Dieser Fehler ist darauf zurückzuführen, dass einige Einstellungen in IIS applicationHost.config deaktiviert sind.

Unten sind die Schritte zur Lösung:

  1. Gehen Sie zu C:\Windows\System32\inetsrv\config\applicationHost.config und öffnen Sie es im Notizblock
  2. Ändern Sie den folgenden Schlüsselwert in 

    • <section name="handlers" overrideModeDefault="Deny" /> diesen Wert von "Verweigern" in "Zulassen" ändern

    • <section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" /> Ändern Sie diesen Wert von "Deny" in "Allow".

Es hat für mich funktioniert.

42
SeeTheC

Wenn Sie IIS zum ersten Mal auf diesem Computer ausführen, sollten Sie das ASP.NET IIS - Registrierungstool (aspnet_regiis.exe) ausführen.

Gehen Sie dazu wie folgt vor: Wenn Sie .net framework v4 verwenden, öffnen Sie den Befehl Eingabeaufforderung als Administrator, und ändern Sie das Verzeichnis in den Basisordner des .net Framework.

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

oder, wenn Sie einen 64-Bit-Computer verwenden, verwenden Sie:

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

wenn Sie erfolgreich zum entsprechenden Verzeichnis navigiert haben, führen Sie das Registrierungstool von ASP.NET IIS aus, indem Sie Folgendes verwenden:

aspnet_regiis -i

Wenn Sie eine andere .NET Framework-Version verwenden, ersetzen Sie einfach v4.0.30319 durch den entsprechenden Ordnernamen.

Hoffe das hilft.

30
Ibrahim Dauda

Ich habe dieses Problem gelöst, indem ich Folgendes getan habe:

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

Unter Windows 8.1, IIS 8.5 bestand die Lösung für mich darin, 4.5 über die Systemsteuerung zu registrieren: 

Programme und Funktionen> Aktivieren oder Deaktivieren von Windows-Funktionen> Informations-Informationsdienste> WWW-Dienste> Anwendungsentwicklungsfunktionen> Wählen Sie ASP.NET 4.5 aus

OK klicken.

7
Jon

Da der Fehler idnicates - "Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist". Zum Entsperren des Abschnitts können Sie appcmd.exe verwenden und den folgenden Befehl ausführen:

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

Weitere Informationen zum Sperren von Abschnitten und zu einem übergeordneten Konfigurationskontext finden Sie in IIS Dokumentation .

4
Taras Alenin

In unserem Fall hatten wir einige Tage mit diesem Fehler zu kämpfen. Es stellt sich heraus, dass Programme in der Systemsteuerung Windows-Funktionen ein- oder ausschalten. 

Wir haben Internetinformationsdienste, World Wide Web Services und Anwendungsentwicklungsfunktionen ausgewählt. Dort überprüfen wir die mit unserer Entwicklungsumgebung verbundenen Funktionen. Zum Beispiel: ASP.NET 4.6. .NET-Erweiterbarkeit 4.6 usw.

Es klappt!

2
Javier Livio

In meinem Fall gab es Regeln für IIS URL Rewrite modul, aber dieses Modul wurde nicht installiert. Sie sollten Ihre web.config überprüfen, ob Module enthalten sind, aber nicht installiert sind.

2
x-freestyler

In Ihrer web.config wird beschrieben, dass Sie forms authentication - verwenden, um sicherzustellen, dass Sie die Formularauthentifizierung aktivieren und anonyme anonyme Authentifizierung in IIS im Menü Authentication für die in IIS ausgeführte Website aktivieren .

1
SpaceBison

Entsperren Sie die entsprechenden Konfigurationseinstellungen IIS (7.5) auf Serverebene wie folgt:

  1. Öffnen Sie IIS Manager
  2. Wählen Sie den Server im Bereich Verbindungen aus
  3. Öffnen Sie Konfigurationseditor im Hauptfenster
  4. Wählen Sie in der Dropdown-Liste "Sektionen" die zu entsperrende Sektion aus, z. system.webServer> defaultPath
  5. Klicken Sie im rechten Bereich auf Unlock Attribute
  6. Wiederholen Sie diesen Vorgang für alle anderen Einstellungen, die Sie entsperren müssen
  7. Neustart IIS (optional) - Wählen Sie den Server im Bereich Verbindungen aus und klicken Sie im Bereich Aktionen auf Neu starten
1
Chris

Nun, wir verwenden Amazon Web Services und suchen daher nach Skripten und Programmen, um dieses Problem zu lösen. Ich war also auf der Jagd nach einem Kommandozeilen-Tool. Also habe ich zuerst versucht, zu laufen

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

da ich jedoch ein Cloud-basiertes Windows Server 2012 betreibe, klagte es

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.

und ich googelte und fand die offizielle Microsoft Support-Seite KB2736284 . Es gibt also ein Befehlszeilentool dism.exe. Also habe ich folgendes versucht

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

aber es beschwerte sich und gab mir eine Liste von Dateinamen, die ich probieren konnte. Also probierte ich sie einzeln aus und testete meine WebAPI-Webseite nach jedem, und es funktionierte nach dem Ende der Liste.

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 

Und so kann ich jetzt zu meiner WebAPI-Site navigieren und die API-Informationen anzeigen. Das sollte ein paar Leuten helfen. [Allerdings bin ich noch nicht ganz aus dem Wald und kann die Website nicht von außerhalb der Box erreichen. Ich arbeite immer noch daran.]

Ich habe auch einige frühere Schritte nach den Antworten anderer Leute unternommen. Ich kann bestätigen, dass die folgende Funktionsdelegation geändert werden muss (obwohl ich dafür gerne ein Befehlszeilentool finden würde).

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

Bei .NET Core-Apps unter Windows Server (in meinem Fall 2012 mit IIS 10) funktionierte es nach der Installation des .NET Core-Pakets für Windows Server Hosting ( link ).

0
Alex Klaus

Prüfen Sie, ob auf dem IIS -Server die URL-Umschreibefunktion installiert ist. 
Wenn es nicht installiert ist, stellen Sie sicher, dass Ihre web.config-Datei nicht die URL-Umschreibungskonfiguration hat 

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

Irgendwann haben wir die Konfiguration vom alten Server kopiert und sofort auf einem neuen Server bereitgestellt. Dann kann es zu einem solchen Problem kommen.

0
Frank Myat Thu

Ich habe mit entfernter anonymousAuthentication behoben.
Kommentieren Sie einfach in Ihrer Web-Konfiguration IIS

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

Bitte <staticContent /> Zeile und lösche es aus der web.config.

0
Erdogan