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" />
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.
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.
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
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:
C:\Windows\System32\inetsrv\config\applicationHost.config
und öffnen Sie es im NotizblockÄ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.
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.
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.
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 .
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!
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.
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 .
Entsperren Sie die entsprechenden Konfigurationseinstellungen IIS (7.5) auf Serverebene wie folgt:
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
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 ).
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.
Ich habe mit entfernter anonymousAuthentication behoben.
Kommentieren Sie einfach in Ihrer Web-Konfiguration IIS
<security>
<!--
<authentication>
<anonymousAuthentication userName=""/>
</authentication>
-->
</security>
Bitte <staticContent />
Zeile und lösche es aus der web.config.