Ich habe ein einfaches WebAPI-Build von Visual Studio 2013. Es funktioniert gut, wenn ich es von VS13 aus ausführe, aber wenn ich das Projekt in lokalem IIS kopiere, wird der folgende Fehler angezeigt.
HTTP-Fehler 500.19 - Interner Serverfehler Auf die angeforderte Seite kann nicht zugegriffen werden, da die zugehörigen Konfigurationsdaten für die Seite ungültig sind.
Detaillierte Fehlerinformationen:
Modul IIS Web Core
Benachrichtigung BeginRequest
Handler Noch nicht festgelegt
Fehlercode 0x80070021
Config Fehler Dieser Konfigurationsabschnitt kann nicht auf diesem Weg verwendet werden. Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist. Das Sperren erfolgt entweder standardmäßig (overrideModeDefault = "Deny") oder wird explizit durch ein Standort-Tag mit overrideMode = "Deny" oder dem alten allowOverride = "false" festgelegt.
Konfigurationsdatei \? \ C: \ inetpub \ wwwroot \ APITeslin \ web.config
Konfigurationsquelle:
36: <system.webServer>
37: <handlers>
38: <remove name="ExtensionlessUrlHandler-Integrated-4.0" />
quelle
Antworten:
Habe genau den gleichen Fehler bekommen und bin auf diese Frage gekommen. Wie @SpaceBison in den 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.
quelle
Ich habe diesen Fehler beim Versuch, einen WCF-Dienst in einer leeren ASP.NET-Anwendung zu hosten, erhalten. Die gesamte Lösung verwendete die .NET 4.5-Plattform unter IIS 8.5 unter Windows 8.1. Das Gotcha war zu
Öffnen Sie "Windows-Funktionen ein- oder ausschalten".
Wechseln Sie zum Abschnitt WCF unter ASP.NET 4.5 Advanced Services
Überprüfen Sie die HTTP-Aktivierung.
Sie werden aufgefordert, das System neu zu starten.
Dies sollte das HTTP 500.19 beheben!
EDIT 11-FEB-2016 Ich habe gerade ein Problem mit Windows 10 Pro, IIS 10, erhalten. Diesmal war es ein HTTP 404.0. Das Update ist immer noch dasselbe. Aktivieren Sie "HTTP-Aktivierung" unter Windows-Funktionen -> Erweiterte Dienste von .NET Framework 4.6 -> WCF-Dienste -> HTTP-Aktivierung
quelle
Ich hatte auch das gleiche Problem, aber nach vielen Stunden Brainstorming mit IIS und Google. Ich habe die Lösung herausgefunden. Dieser Fehler ist darauf zurückzuführen, dass einige Einstellungen in IIS deaktiviert sind
applicationHost.config
.Nachfolgend sind die Schritte zur Lösung aufgeführt:
C:\Windows\System32\inetsrv\config\applicationHost.config
und öffne im NotizblockÄndern Sie den folgenden Schlüsselwert in
<section name="handlers" overrideModeDefault="Deny" />
Ändern Sie diesen Wert von "Verweigern" in "Zulassen".<section name="modules" allowDefinition="MachineToApplication" overrideModeDefault="Deny" />
Ändern Sie diesen Wert von "Verweigern" in "Zulassen".Es hat bei mir funktioniert.
quelle
Wenn Sie IIS zum ersten Mal auf diesem Computer ausführen, sollten Sie versuchen, das ASP.NET IIS-Registrierungstool (aspnet_regiis.exe) auszuführen.
So geht's: Wenn Sie .net Framework v4 verwenden, öffnen Sie die Eingabeaufforderung als Administrator und ändern Sie das Verzeichnis in Ihren .net Framework-Basisordner mit:
Wenn Sie einen 64-Bit-Computer verwenden, verwenden Sie:
Wenn Sie erfolgreich zum entsprechenden Verzeichnis navigiert haben, führen Sie das ASP.NET IIS-Registrierungstool folgendermaßen aus:
Wenn Sie eine andere .NET Framework-Version verwenden, ersetzen Sie diese einfach durch
v4.0.30319
den entsprechenden Ordnernamen.Hoffe das hilft.
quelle
Ich habe dies folgendermaßen gelöst:
quelle
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> Windows-Funktionen aktivieren oder deaktivieren> Informationsinformationsdienste> World Wide Web Services> Anwendungsentwicklungsfunktionen> Wählen Sie ASP.NET 4.5 aus
OK klicken.
quelle
Wie der Fehler anzeigt - "Dies geschieht, wenn der Abschnitt auf übergeordneter Ebene gesperrt ist". Um den Abschnitt zu entsperren, können Sie appcmd.exe verwenden und den folgenden Befehl ausführen:
Weitere Informationen zum Sperren von Abschnitten und zum Kontext einer übergeordneten Konfiguration finden Sie in der IIS-Dokumentation .
quelle
In unserem Fall hatten wir einige Tage mit diesem Fehler zu kämpfen. Es stellt sich heraus, dass in der Systemsteuerung Programme die Windows-Funktionen ein- oder ausschalten.
Wir haben Internetinformationsdienste, World Wide Web Services und Anwendungsentwicklungsfunktionen ausgewählt und dort die mit unserer Entwicklungsumgebung verbundenen Funktionen überprüft. Zum Beispiel: ASP.NET 4.6. .NET-Erweiterbarkeit 4.6 usw.
Es klappt!
quelle
Versuchen Sie, die relevanten IIS (7.5) -Konfigurationseinstellungen auf Serverebene wie folgt zu entsperren:
quelle
In meinem Fall gab es Regeln für das IIS URL Rewrite- Modul, aber ich hatte dieses Modul nicht installiert. Sie sollten in Ihrer web.config überprüfen, ob Module enthalten, aber nicht installiert sind.
quelle
Wenn es sich um Windows 10 handelt, öffnen Sie die Powershell als Administrator und führen Sie den folgenden Befehl aus:
quelle
In Ihrer web.config wird beschrieben, dass Sie die Formularauthentifizierung verwenden. Stellen Sie sicher, dass Sie die Formularauthentifizierung aktivieren und die anonyme Authentifizierung in IIS im Menü Authentifizierung für die in IIS ausgeführte Website deaktivieren .
quelle
Bitte
<staticContent />
Zeile und löschte es aus der web.config.quelle
Nun, wir verwenden Amazon Web Services und versuchen daher, Skripte und Programme zu verwenden, um dieses Problem zu lösen. Also war ich auf der Suche nach einem Kommandozeilen-Tool. Also habe ich zuerst den Trick des Laufens ausprobiert
c:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
Aber weil ich einen Cloud-basierten Windows Server 2012 verwende, hat es sich beschwert
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 habe gegoogelt und die offizielle Microsoft-Support-Seite KB2736284 gefunden . Es gibt also ein Kommandozeilen-Tool
dism.exe
. Also habe ich folgendes versuchtdism /online /enable-feature /featurename:IIS-ASPNET45
Aber es beschwerte sich und gab eine Liste von Funktionsnamen zum Ausprobieren, also versuchte ich sie einzeln und testete meine WebAPI-Webseite nach jeder und es funktionierte nach der untersten in der Liste.
Jetzt kann ich zu meiner WebAPI-Site navigieren und die API-Informationen anzeigen. Das sollte ein paar Leuten helfen. [Ich bin jedoch noch nicht ganz aus dem Wald und kann die Website nicht von außerhalb der Box erreichen. Ich arbeite noch daran.]
Außerdem habe ich einige frühere Schritte ausgeführt, um den Antworten anderer Personen zu folgen. Ich kann bestätigen, dass die folgende Feature-Delegierung geändert werden muss (obwohl ich ein Befehlszeilen-Tool für diese finden möchte).
quelle
Überprüfen Sie, ob der IIS-Server die Funktion zum Umschreiben von URLs installiert hat.
Wenn es nicht installiert ist, stellen Sie sicher, dass Ihre web.config-Datei nicht über die Konfiguration zum Umschreiben der URL verfügt
Einige Zeit, in der wir die Konfiguration vom Legacy-Server kopiert und sofort auf einem brandneuen Server bereitgestellt haben, können solche 500 Probleme auftreten.
quelle
Es funktioniert und spart meine Zeit. Probieren Sie es aus HTTP-Fehler 500.19 - Interner Serverfehler - 0x80070021 (IIS 8.5)
quelle
Die Lösung, die für mich funktioniert hat, bestand darin, meine aktuelle Web.config zu löschen und eine neue hinzuzufügen. Das hat das Problem für mich gelöst
quelle