4 Stimmen

JQuery zu asmx funktioniert nicht unter Windows 2008 R2 SP1

Seit der Installation von SP1 haben wir Probleme beim Aufrufen von asmx-Seiten aus dem JQuery-Clientcode.

Der IIS leitet den JQuery-Postaufruf auf seine Standard-404-Seite um.

Wir haben eine Rollback unserer Umgebung gemacht, um sicherzustellen, dass dieses Problem durch SP1 verursacht wird, und Tests bestätigen es.

Warte auf eine Lösung @MS

Verwendete Technologien:

ASP.Net 4.0 - JQuery - IIS 7.5 - Windows 2008 R2 SP1

--Bart

Codebeispiel (Front-End):

  // Code zum Laden von Variablen...
  $.ajax({

              type: "POST",
              url: "/Handlers/ProductRating.asmx/RateProduct",
              data: "{'uniqueId':'" + uniqueId + "','productId':'" + productId + "','points':" + points.toString() + ",'showOwnScore':" + showOwnScore.toString() + "}",
              contentType: "application/json; charset=utf-8",
              dataType: "json",
              success: function(response) {
                   alert('Erfolg');
              },
              failure: function(msg) {
                alert('Etwas ist schief gelaufen');
              }
            });
        }

Code (Back-End):

 [ScriptService]
public class ProductRating : System.Web.Services.WebService
{

    [WebMethod(EnableSession=true)]
    public RateProductResponse RateProduct(Guid uniqueId, Guid productId, int points, bool showOwnScore)
    {
       //Implementierung
    }

Schnappschuss 1: Mit SP1: http://img812.imageshack.us/i/capture2r.png/

Schnappschuss 2: Ohne SP1: http://img190.imageshack.us/i/capture1qx.png/

4voto

Slaptoast Punkte 41

Ich konnte dies mit dem folgenden Zusatz zu meiner web.config zum Laufen bringen

Ich habe auf einer anderen Website gesehen, dass das Löschen der Handler vorgeschlagen wurde, aber das hat alles viel schlimmer gemacht. Mit diesem Update konnte ich meine Webservices wieder aufrufen.

0voto

Nanite Punkte 93

Ich hatte das gleiche Problem.

Erstellen Sie eine Web.Config-Datei mit den folgenden Zeilen:

Kopieren Sie dies in das Verzeichnis bzw. die Verzeichnisse, in denen Sie Ihre betroffenen Skripte ausliefern, und starten Sie Ihren Webserver neu.

Diese Zeilen werden Ihre bevorzugten HttpHandlers außer Kraft setzen und stattdessen die Standard-Handler verwenden.

Viel Glück!

0voto

Dave Ward Punkte 58382

Ausgehend von Ihren Screenshots scheint dies sehr nach einem Problem mit der URL-Umschreibung zu sein. Hat Ihre Website möglicherweise zu gierige URL-Umschreibungsregeln auf der IIS-Ebene, die möglicherweise eine 302-Weiterleitung von /Handlers/ProductRating.asmx/RateProduct verursachen?

Falls Sie Umschreibungsregeln haben, könnten Sie versuchen, sie vorübergehend zu deaktivieren, um zu sehen, ob das das ASMX-Problem löst?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X