Frage

Ich versuche JQuery zu verwenden, um einige Ajax -Anrufe zu tätigen, aber weil ich Wild Card Mapping (zu .NET) in IIS 6 eingeschaltet habe, scheint es nicht zu funktionieren. Durch Deaktivieren der Zuordnung funktioniert alles auf magische Weise.

Ich habe das Web -Methode -Attribut sowohl auf Methoden sowohl auf einer .aspx -Seite als auch auf einem .asmx -Webdienst eingestellt, aber auch nicht funktioniert. Hier ist die Beispiel -URL, die ich für die Ajax -Anrufe verwende:

localhost/UserChecker.aspx/CheckIfUserEmailsExists

localhost/UserChecker.asmx/CheckIfUserEmailsExists

Ich denke, es muss etwas mit der Art und Weise sein, wie .NET die URLs interpretiert, aber ich bin mir nicht ganz sicher, warum. Noch wichtiger ist, ich bin mir nicht sicher, wie ich es reparieren soll, außer dass die Wild Card Mapping deaktiviert wird! Gibt es einen anderen Weg ???

AKTUALISIEREN

Das CMS, das ich verwende (Kentico), führt eine URL -Routing durch, aber selbst wenn ich das Routing im global.asax.cs -Code überspringe, bekomme ich immer noch einen 404.
Danke im Voraus!

War es hilfreich?

Lösung

Mit der Wildcard -Mapping auf IIS wird die erste Anfrage zuerst über den Wildcard -Handler ausgeführt. Dies erfolgt vor dem Umschreiben (oder URL -Routing) von URL durch Ihr CMS.

Ich denke, deshalb bekommst du 404.

Sie können auch versuchen, das Kontrollkästchen "Datei existieren" in der Wildcard -Mapping zu deaktivieren, um das Szenario zu erfüllen, wenn die tatsächliche URL später zu etwas anderem umgeschrieben wird.

Andere Tipps

Dies ist keine vollständige Antwort, aber ich hoffe, dass Sie in Richtung einer Lösung hingewiesen werden.

Haben Sie versucht, direkt in einem Browser auf die URL zuzugreifen und einige gut platzierte Haltepunkte zu verwenden, um das Problem aufzuspüren?

Wenn Sie 404s erhalten, klingt es so, als ob Ihre Regeln für das Routing nicht funktionieren.

Ich werde dies aktualisieren, wenn Sie ein wenig mehr Informationen über das Verhalten geben können, das Sie sehen

AKTUALISIEREN

Ich denke, was passieren könnte, ist Folgendes:

Sie bieten eine separate Zuordnung für Ihre Dateien mit Erweiterungen (in diesen Fällen .aspx und .asmx):

localhost/userChecker.aspx/checkifuseremailsexists

localhost/userChecker.asmx/checkifuseremailsexists

Diese Zuordnungen werden verwendet, wenn Sie die Wild Card -Zuordnungen ausschalten, und die '/Checkifuseremailsexists' werden verwendet oder ignoriert. Wenn Sie die Wildcard -Zuordnungen einschalten, informiert Ihr Routing Ihre App nicht, wie Sie korrekt "Routing" haben.

Wenn Sie die Erweiterungen entfernt haben (mit der Einführung von Wildcard -Zuordnungen), funktioniert die folgende folgende?

Localhost/UserChecker/Checkifuseremailsexisten

Fügen Sie die entsprechenden URLs zur Ausschlussliste hinzu: Verwenden Sie die Einstellung "ausgeschlossene URLs" auf der Registerkarte "Site Manager-"> Einstellungen. (Grundlegende Hilfedokumentation)

Ich schlage vor, die URL außerhalb Ihres CMS -Frameworks zu überprüfen. Das Problem muss bei der URL -Routing sein. Keine Tsure, wie es ohne die Wild Card -Mapping funktionierte.

Fragen zu verstehen: 1. Haben Sie Ihr CMS ausgeführt, wenn Sie es ohne Wild Card Mapping versuchen? 2. Wie interagiert dieses CMS -System mit IIS? Iaspi dll? oder HTTP -Handler/Module?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top