ASP.NET Web-Methode akzeptiert eine Liste<CustomObject> andernfalls mit "Web Service-Methode name ist nicht gültig."

Ich möchte erstellen Sie eine web-Methode akzeptiert eine Liste der benutzerdefinierten Objekte (übergeben in der via jQuery/JSON).

Wenn ich die website lokal alles scheint zu funktionieren. jQuery und ASP.NET und jeder ist glücklich. Aber wenn ich es auf einem unserer Server in die Luft sprengt. jQuery erhält einen 500-Fehler, nachdem der ajax-request mit Antwort:

System.InvalidOperationException: EditCustomObjects Web-Service-Methode name ist nicht gültig.

Hier ist die web-service-Methode:

[WebMethod]
public void EditCustomObjects(int ID, List<CustomObject> CustomObjectList)
{
  //Code here
}

Und mein jQuery-code (was ich denke nicht Fragen, da der Fehler scheint passiert zu sein auf die web-service-Ebene):

var data = JSON.stringify({
  ID: id,
  CustomObjectList: customObjectList
});

$.ajax({
  type: "POST",
  url: "/manageobjects.asmx/EditCustomObjects",
  data: data,
  contentType: "application/json; charset=utf-8",
  async: false,
  dataType: "json",
  success: function(xml, ajaxStatus) {
    //stuff here
  }
});

Den customObjectList initialisiert wird, etwa so:

var customObjectList = [];

Und ich Elemente hinzufügen, um es wie dies (über eine Schleife):

var itemObject = { 
  ObjectTitle = objectTitle,
  ObjectDescription = objectDescription,
  ObjectValue = objectValue
}

customObjectList.push(itemObject);

So, mache ich etwas falsch hier? Gibt es einen besseren Weg, der ein array übergeben von Daten von jQuery ein ASP.NET web-service-Methode? Gibt es eine Möglichkeit zur Behebung des "Web Service-Methode name ist nicht gültig." Fehler?

FYI, ich bin laufen .NET 2.0 auf einem Windows Server 2003-Maschine, und ich habe den code für die oben von dieser Seite: http://elegantcode.com/2009/02/21/javascript-arrays-via-jquery-ajax-to-an-aspnet-webmethod/

EDIT: Jemand beantragt, einige weitere info auf der web-Dienst, den ich lieber nicht die ganze Klasse, aber hier ist ein bisschen mehr, die helfen können:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[ScriptService] 
public class ManageObjects : Custom.Web.UI.Services.Service 
{
}

Bara

Können Sie Ihre vollständige web-service-Klasse? mindestens die Methode des übergeordneten Bereiche?
Würde ich eher nicht posten, das ganze web-service, aber siehe mein edit oben für ein bisschen mehr info auf die Initialisierung des web-service.
Starten Sie durch überprüfen, um zu sehen, ob die Methode tatsächlich nicht existieren auf den Produktions-server. Gehen Sie zu http://mysite.com/manageobjects.asmx und sehen, welche Methoden es Listen.
Es gibt Sie, ich habe bereits überprüft, dass.

InformationsquelleAutor Bara | 2010-02-08

Schreibe einen Kommentar