Exceção de método da Web desconhecida ao chamar WebMethod compartilhado

Estou tentando implementar um serviço da web de rastreamento de exibição no meu site. Estou usando JavaScript porque quero excluir todos os robôs de pesquisa das minhas visualizações rastreadas. O problema é que estou recebendo um erro "Método da web desconhecido" quando tento usar o jQuery para postar no serviço da web que criei.

$(document).ready(function() {

  $.ajax({
    type: "POST",
    url: '<%=ResolveUrl("~/WS/ItemViewTrackingService.asmx/TrackItemView") %>',
    data: "{'itemType': 'thread', 'itemId':<%=mThread.ThreadID %>}",
    contentType: "application/json; charset=utf-8"
  });

});

Aqui está o serviço da web.

Imports System.Web.Services
Imports System.Web.Services.Protocols
Imports System.ComponentModel

<System.Web.Script.Services.ScriptService()> _
<System.Web.Services.WebService(Namespace:="http://tempuri.org/")> _
<System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> _
<ToolboxItem(False)> _
Public Class ItemViewTrackingService
  Inherits System.Web.Services.WebService

  <WebMethod(EnableSession:=True)> _
  Public Shared Sub TrackItemView(ByVal itemType As String, ByVal itemId As Int32)

    If itemType.Equals("column", StringComparison.OrdinalIgnoreCase) Then
      Services.ViewTrackingService.TrackColumnView(itemId)
    ElseIf itemType.Equals("thread", StringComparison.OrdinalIgnoreCase) Then
      Services.ViewTrackingService.TrackThreadView(itemId)
    End If

  End Sub

End Class

O erro é um erro do ASP .NET: Método da web desconhecido TrackItemView. Nome do parâmetro: methodName

Eu já fiz isso centenas de vezes (aparentemente), mas simplesmente não consigo ver o que estou perdendo. Tenho certeza que é algo pequeno ...