Benutzerdefinierte Handler arbeitet an Asp.NET Entwicklung Server aber nicht auf IIS 5.1?

StackOverflow https://stackoverflow.com/questions/729599

  •  05-09-2019
  •  | 
  •  

Frage

Hallo Jungs, bekam ive ein dummes Problem.

My Custom Handler arbeitet zu 100% auf Asp.NET Entwicklungs-Server, aber wenn ich die Website auf IIS 5.1 zu veröffentlichen, wenn ich versuche, Kommentar zu laufen / Suche (die einen Benutzer über einen AJAX-Aufruf findet) (ich weiß, dass die Namensgebung meines Handler sux !!! :)

Ich bekomme diese Fehlermeldung:

Die Seite kann nicht angezeigt werden Die Seite, die Sie suchen, kann nicht angezeigt werden, da die Seitenadresse ist falsch.

Bitte versuchen Sie Folgendes:

* If you typed the page address in the Address bar, check that it is entered correctly.
* Open the home page and then look for links to the information you want.

HTTP 405 - Ressource nicht erlaubt Internet-Informationsdienste

Technische Informationen (für Supportpersonal)

* More information:
  Microsoft Support

Mein Code für den AJAX-Aufruf lautet:

 function findUser(skip, take) {

        http.open("post", 'Comment/FindUser', true);
        //make a connection to the server ... specifying that you intend to make a GET request
        //to the server. Specifiy the page name and the URL parameters to send
        http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        http.setRequestHeader('Criteria', document.getElementById('SearchCriteria').value);
        http.setRequestHeader("Skip", skip);
        http.setRequestHeader("Take", take);
        http.setRequestHeader("Connection", "close");

        //display loading gif
        document.getElementById('ctl00_ContentPlaceHolder1_DivUsers').innerHTML = 'Loading, Please Wait...<br /><img src="Images/loading.gif" /><br /><br />';

        //assign a handler for the response
        http.onreadystatechange = function() { findUserAction(); };

        //actually send the request to the server
        http.send(null);

}

Bitte kann mir jemand helfen ??

War es hilfreich?

Lösung

Stellen Sie sicher, dass Sie die Erweiterung auf dem IIS-Server erlaubt haben. Der Entwicklungsserver funktioniert diese automatially für Sie.

Wenn Sie die Eigenschaften der Website dann auf die Registerkarte Basisverzeichnis gehen öffnen und klicken Sie auf die Schaltfläche Konfiguration.

dort versuchen, die Erweiterung hinzufügen, die Sie für den Handler Zeige verwenden. Stellen Sie die ausführbare Datei auf den aspnet_isapi.dll (Blick auf die Standard-Erweiterung .aspx zu finden, wo es auf Ihrem Computer) und deaktivieren Sie „Überprüfen Sie die Datei existiert“.

Ich habe dieses ein paar Mal verbrannt worden und diese sortiert das Problem

Colin G

Andere Tipps

Auf IIS nicht alle Anrufe werden von der asp.net-Handler verarbeitet werden (im Gegensatz zu cassini die Entwicklungs-Server), wenn der Anruf in aspx endet, .ashx usw. .NET isapi dll wird das Gespräch nicht verarbeiten.

Der Schlüssel ist in der

HTTP 405 - Ressource nicht Internet-Informationsdienste erlaubt

Sie müssen auch den Handler in den web.config Karte, wenn es keine entsprechende .ashx Datei im Dateisystem ist.

Das Problem war, dass, wenn ich auf der Entwickler den Handler aufrufen. Server i wurde liek diesen Aufruf

http.open("post", 'Comment/Rate', true);

weil in meinem web.config ich es angewiesen, alle „Kommentar /“ Urls zu fangen und die CommentHandler.ashx nennen es Handler.

 <add verb="*" path="Comment/*" type="CoffeeMashup2.CommentHandler"/>

aus irgendeinem Grunde jedoch in IIS es funktioniert nicht so änderte ich den obigen Aufruf

http.open("post", 'CommentHandler.ashx/Rate', true);

und sein arbeitete 100%

Vielen Dank für Ihre Hilfe Jungs

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