Méthode Web inconnue. Nom du paramètre: methodName
dans la recherche de ce problème la plupart des questions portaient sur le static
méthode comme solution.
Puisqu'il ne fonctionne pas avec la vraie (et un peu sophistiquée) WebMethod je viens de créer un simple pour le plaisir de vérifier si atteindre la méthode elle-même est possible.
[WebMethod]
[ScriptMethod(UseHttpGet = false)]
public static string HelloWorld()
{
return "Hello World!";
}
L'appel.
<script>
$(document).ready(function () {
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "usersWebMethods.aspx/HelloWorld",
dataType: "json",
success: function (data) {
alert(data.d);
}
});
});
</script>
il s'agit toujours de 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 une faute?
5 réponses
j'ai eu ce problème aussi, mais un peu différemment j'ai eu cette méthode dans un .asmx fichier et donc couru à travers la "statique", mais d'une manière différente.
si vous avez une méthode dans votre classe de Page, elle static
.
si vous avez mis une méthode dans un .asmx fichier à utiliser sur plusieurs pages, il ne doit passtatic
.
j'ai eu un problème dans le réel .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 ont-ils changé? Je ne sais pas :(.
Pour moi, les principaux enjeux était de changer le javascript post
pour passer dans aucun des arguments tels que
$http.post("Status.aspx/MyData", {})
alors pour vérifier que rien n'était caché, j'ai supprimé [System.Web.Services.WebMethod]
dans le fichier code-behind ci-dessus public static string MyData()
. Puis j'ai construit le projet à l'échec, puis a rajouté l'attribut supprimé mentionné ci-dessus et construit à la réussite.
en cours d'exécution, cela a fonctionné.
manquer la [WebMethod] au-dessus de votre fonction Côté Serveur causera également cette erreur.
pour être honnête, je viens de réaliser "encore" à quel point nous pouvons être fatigués dans certains cas.
Pour moi, c'était juste un "privé" méthode au lieu de publics.