Chamar um método do lado do servidor ASP.NET via jQuery

Estou tentando chamar um método do lado do servidor do lado do cliente via jQuery. Meu código é o seguinte:

Lado do servidor:

    using System.Web.Services;
    [WebMethod()]
    //[ScriptMethod()]
    public static void SendMessage(string subject, string message, string messageId, string pupilId)
    {
        //Send message
    }

Lado do cliente:

$("#btnSendMessage").live("click", function(){
  var subject = $("#tbSubject").val();
  var message = $("#tbMessage").val();
  var messageId = $("#hdnMessageId").val();
  var pupilId = $("#hdnPupilId").val();

  $.ajax({
      type: "POST",
      url: "./MessagePopup.aspx/SendMessage",
      data: ("subject=" + subject + "&message=" + message + "&messageId=" + messageId + "&pupilId=" + pupilId),
      error: function(XMLHttpRequest, textStatus, errorThrown){
          alert(textStatus);
      },
      success: function(result){
         alert("success");
      }
   });
   return false;
});

Adicionei um ponto de interrupção no método SendMessage do lado do servidor, mas nunca o atingiu, mas quando executo o código, o método de sucesso do jQuery é chamado. O que poderia estar causando isso?

questionAnswers(5)

yourAnswerToTheQuestion