Problem-Mapping HttpHandler - & gt; HTTP-Fehler 404 nicht gefunden
Ich habe Probleme versuchen, der Karte einen HttpHandler im web.config.
Dies ist die relevante config bit:
<httpHandlers>
<add verb="*" path="*.hndlr" type="MyAssembly.MyHandler, MyAssembly" validate="false" />
</httpHandlers>
Wenn ich navigieren Sie zu http://localhost/myApp/whatever.hndlr
ich bin immer ein server-Fehler 404 (nicht gefunden).
Es ist das 1. mal, ich bin Einhaken ein HttpHandler, also würde ich etwas vermissen - jede Hilfe dankbar!
UPDATE:
Habe ich es geschafft, es funktioniert mit beiden Antworten so weit - wer ist in der Lage, exaplin, warum es funktioniert, bekommt die Antwort markiert!
Dies ist meine config (wird nicht funktionieren, wenn nicht beide - ich bin mit IIS7 im classic-Modus)
System.web:
<httpHandlers>
<add verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false"/>
</httpHandlers>
System.webserver:
<handlers>
<add name="MyHandler" verb="*" path="*MyHandler.hndlr" type="MyAssembly.MyAssemblyHandler, MyAssembly" validate="false" modules="IsapiModule" scriptProcessor="C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" requireAccess="Script"/>
</handlers>
Kommentar zu dem Problem - Öffnen
Weiter, um Ihre Aktualisierung, wenn Sie mit IIS6 antything, die Sie in das System.webserver-Abschnitt ignoriert werden, da dies nur in IIS7 Integrierte Pipeline-Modus. Der einzige Grund, beides zu haben wäre, um eine einzelne web.config, die ist gültig für IIS7 Pipeline und klassischen Modus und IIS6.
sorry, es ist IIS7 - aber nicht, dass die Dinge ändern? Wenn ich entfernen Sie das bit in das system.webserver-Sektion funktioniert nicht (404 not found) und wir sind im classic-Modus aus Gründen der Kompatibilität.
und wenn ich den Kommentar aus dem in-system.web bekomme ich "Fehler beim Ausführen von URL" - es funktioniert nur mit beiden für einige lustige Grund! 🙂
Das update war ein Lebensretter ... vielen Dank!
@David gerne helfen!
InformationsquelleAutor der Frage JohnIdol | 2010-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie mit IIS7, wenn ja, wird der Anwendungspool ausgeführt wird, in klassischen oder Pipeline-Modus? Wenn es IIS7 im Pipeline-Modus dann die handler-Verweis muss in den folgenden Abschnitt
anstatt Sie im folgenden Abschnitt.
InformationsquelleAutor der Antwort Ben Robinson
Nur als Leitfaden für diejenigen, die stecken mit diesem problem, ich fand das entscheidende Attribut zu sein..
Ich ursprünglich gefolgt einem Microsoft-Beispiel, um dies einzurichten und Sie hatte es als
welche einfach gehalten, dass Sie mir 404-Fehler. Meine HTTPHandler zurückgegeben Grafiken.
Hoffe, das hilft 🙂
InformationsquelleAutor der Antwort CResults
ich bin mit IIS7, die Lösung ist:
in Abschnitt
und Abschnitt
InformationsquelleAutor der Antwort CARLOS HERNANDEZ
Was ist die Verlängerung der handler? Wenn Sie eine benutzerdefinierte Erweiterung wie .hndlr Sie können auch hinzufügen müssen, um eine ScriptMap in IIS und zeigen Sie es auf der ASP.NET Laufzeit so, dass der IIS kann das weiterleiten der Anfrage an den richtigen Prozessor.
Dann in Ihrer Website.config registrieren Sie den handler in dem entsprechenden Abschnitt, wie beschrieben in der anderen Antwort.
InformationsquelleAutor der Antwort Wallace Breza
Es ist auch möglich zu erleben, diesen Fehler, wenn Sie die Prozedur für 32 bit, aber Sie laufen in 64 bit (oder Umgekehrt). Es ist einfach eingerichtet und haben alle Grundlagen abgedeckt.
Hinweis "Voraussetzung" und "scriptProcessor" Unterschiede.
InformationsquelleAutor der Antwort James
Hoffentlich meine Lösung anderen helfen. Auf einem server-Umzug von IIS6 auf 7,5, beide .Net 4.0 Integriert, hatte ich eine Captcha-Kontrolle, beenden Sie arbeiten. Es stellt sich heraus, dass das entfernen dieses Attribut
preCondition="integratedMode,runtimeVersionv2.0"
von der<add>
Knoten in<system.webserver><handlers>
ist das Problem behoben.InformationsquelleAutor der Antwort InbetweenWeekends
Keiner der bisherigen Antworten, die für mich gearbeitet.
Ich bin mit
IIS 8.5, .Net v4.0, Integrated
, und war noch immer ein 404 mit folgenden handler config:Ich Ablaufverfolgung aktiviert und Folgendes gefunden :
Wie Sie sehen können, es sieht aus wie es hatte richtig nahm den Antrag mit meinem custom HttpHandler
testEmail
aber MVC gestohlen hatte.Ich öffnete meine route Definitionen in
RouteConfig.cs
und festgestellt, dass die Zugabe:Habe ich es zu ignorieren Anfragen bedeutete für mein Handler.
Hoffe, dies hilft jemand - ich war dabei mir die Haare aus!
InformationsquelleAutor der Antwort farmer-Bri