Méthode Web inconnue. Nom du paramètre: methodName

En recherchant ce problème, la plupart des problèmes de SO concernaient la méthode static tant que solution.

Puisqu’il ne fonctionne pas avec le WebMethod réel (et un peu sophistiqué), je viens de créer un simple pour vérifier si atteindre la méthode elle-même est possible.

 [WebMethod] [ScriptMethod(UseHttpGet = false)] public static ssortingng HelloWorld() { return "Hello World!"; } 

L’appel.

  $(document).ready(function () { $.ajax({ type: "POST", contentType: "application/json; charset=utf-8", url: "usersWebMethods.aspx/HelloWorld", dataType: "json", success: function (data) { alert(data.d); } }); });  

Il revient toujours à 500 (Internal Server Error)

 Unknown web method HelloWorld. Parameter name: methodName Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. Exception Details: System.ArgumentException: Unknown web method HelloWorld. Parameter name: methodName 

Pourquoi est-ce que cela échoue?

J’avais aussi ce problème, mais un peu différemment, j’avais cette méthode dans un fichier .asmx et j’ai donc rencontré le problème “statique”, mais d’une manière différente.

Si vous avez une méthode dans votre classe Page, elle doit être static .

Si vous avez mis une méthode dans un fichier .asmx à utiliser sur plusieurs pages, elle ne doit pas être static .

J’ai eu un problème dans le fichier .aspx, la ligne

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="xxx.xxx.cs" Inherits="xxx.xxx" %> 

n’était pas présent dans le code. Comment cela a-t-il changé? Je ne sais pas :(.

Pour moi, le principal problème était de changer la post javascript pour ne transmettre aucun argument tel que

$http.post("Status.aspx/MyData", {})

Ensuite, pour vérifier que rien n’était mis en cache, j’ai ensuite supprimé [System.Web.Services.WebMethod] dans le code derrière le fichier situé au-dessus de public static ssortingng MyData() . Ensuite, j’ai construit le projet à l’échec, puis j’ai rajouté l’atsortingbut supprimé mentionné ci-dessus et construit au succès.

En cours d’exécution cela a fonctionné.

Manquer le [WebMethod] au-dessus de votre fonction côté serveur provoquera également cette erreur.

Pour être honnête, je viens de me rendre compte à nouveau de la fatigue dans certains cas.

Pour moi, c’était juste une méthode “privée” au lieu d’une méthode publique.