未知的网络方法

I'm trying to call a code-behind method which I decorated with the WebMethod class but I ended up having this error:

Unknown web method [myMethodName]

This is my method:

   [WebMethod, ScriptMethod(ResponseFormat = ResponseFormat.Json, UseHttpGet = false)]
   public void DisplayQuestionByIndex(int questionNumber)
   {
       DataRow e = questionTable.Rows[questionNumber];
       QuestionTable t = new QuestionTable();
       t.Id = Convert.ToInt32(e["Id"]);
       t.Question = e["Question"].ToString();
       t.OptionA = e["OptionA"].ToString();
       t.OptionB = e["OptionB"].ToString();
       t.OptionC = e["OptionC"].ToString();
       t.OptionD = e["OptionD"].ToString();

      JavaScriptSerializer js = new JavaScriptSerializer();
      Context.Response.Write(js.Serialize(t));
   }

And my AJAX call:

$.ajax({
                url: "ExamPage.aspx/DisplayQuestionByIndex",
                data: '{questionNumber:'+ JSON.stringify(idToSend)+'}',
                contentType: "application/json;charset=UTF-8",
                dataType:"json",
                type: "POST",
                success: function (data,status) {
                    console.log(data.Id);
                    //console.log(data.Question);
                    //console.log(data.OptionA);
                    //console.log(data.OptionB);
                    //console.log(data.OptionC);
                    //console.log(data.OptionD);
                    //console.log(data);
                },
                error: function (request, status) {
                    console.log("An error has occured!");
                    console.log(status);
                },

            });