asp.netweb-servicesasmxwebservices-client

Different declaration of a WebMethod in asmx and aspx file?


I have the exact code when declaring webmethod in aspx file and in asmx file. They are webmethods exposed for client scripting. I just want to use webmethod inside asmx file, but cannot get it to work.

When I reference a method in aspx file everything works just fine, but when I reference webmethod in asmx I receive an error method unknown. I checked all solutions for "unknown method, parametar methodname" but nothing helped.

Webmethod is both declared in a similar way:

[WebMethod]
public static string[] InsertRecord(string param) { return something }

Only difference is that asmx contains [System.Web.Script.Services.ScriptService] for class.

I cant figure out what is the problem.

WebMethod is being called from Jquery script places in a control (ascx).

function InsertRecord(notice)
{
        $.ajax({
        type: "POST",
        url: "/Webservices/Records.asmx/InsertRecord",
        data: "{ 'notice':'" + notice + '' }",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

        },
        error: function(msg) {}

        });

}


Solution

  • your web.config file maybe needs this (check if it is there):

        <webServices>
            <protocols>
                  <add name="HttpSoap"/> 
                  <add name="HttpPost"/>
                  <add name="HttpGet"/>
                  <add name="Documentation"/>
            </protocols>
         </webServices>
    

    you neeed to uset httppost and httpget in your web.config file, or your ajax call will never happen.