Unknown web method. Parameter name: methodName

2019-03-22 17:35发布

In researching this problem most SO issues were about the static method as a fix.

Since it's not working with the real (and a bit sophisticated) WebMethod I've just created a simple one for the sake of checking if reaching the method itself is possible.

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

The call.

<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>

It always comes down to 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

Why is this failing?

5条回答
Rolldiameter
2楼-- · 2019-03-22 18:18

For me, the primary issues was to change javascript post to pass in no arguments such as

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

Then to verify nothing was cached, I then deleted [System.Web.Services.WebMethod] in the code behind file above public static string MyData(). Then I built the project to failure, then re-added the aformentioned deleted attribute and built to success.

Upon running it worked.

查看更多
啃猪蹄的小仙女
3楼-- · 2019-03-22 18:23

I had this issue as well, but slightly differently I had this method in a .asmx file and so ran across the "static" issue, but in a different way.

If you have a method as part of your Page class, it must be static.

If you've put a method in an .asmx file to use across several pages, it must not be static.

查看更多
Root(大扎)
4楼-- · 2019-03-22 18:26

To be honest, I've just realised "again" how tired we could be in some cases.

For me it was just a private method instead of a public one.

查看更多
兄弟一词,经得起流年.
5楼-- · 2019-03-22 18:29

I had a problem in the actual .aspx file, the line

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

wasn't present in the code. How did it get changed? I Don't know :(.

查看更多
够拽才男人
6楼-- · 2019-03-22 18:30

Missing the [WebMethod] above your server side function will also cause this error.

查看更多
登录 后发表回答