Como rastrear solicitações de WebService do ScriptService?

Eu tenho um SoapExtension que se destina a registrar todas as solicitações e respostas SOAP. Ele funciona muito bem para chamadas de um aplicativo usando o MS Soap Toolkit (OnBase Workflow). Mas não funciona para chamadas feitas por $ .ajax () em uma página html. Aqui está um exemplo:

<code>$.ajax({
    type: "POST",
    url: url,
    data: data,
    contentType: "application/json; charset=utf-8",
    dataType: "json"
});
</code>

Ele está chamando um WebService do ASP.NET 3.5 marcado com os atributos WebService e ScriptService:

<code>[WebService(Namespace = XmlSerializationService.DefaultNamespace)]
[ScriptService]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class DepartmentAssigneeService : WebService
{
    private readonly DepartmentAssigneeController _controller = new DepartmentAssigneeController();

    /// <summary>
    /// Fetches the role items.
    /// </summary>
    /// <returns></returns>
    [WebMethod]
    [SoapLog]
    public ListItem[] FetchDepartmentItems()
    {
        return CreateListItems(_controller.FetchDepartments());
    }
}
</code>

E aqui estão os princípios básicos para o SoapExtension e o SoapExtensionAttribute:

<code>public class LoggingSoapExtension : SoapExtension, IDisposable { /*...*/ }

[AttributeUsage(AttributeTargets.Method)]
public sealed class SoapLogAttribute : SoapExtensionAttribute { /*...*/ }
</code>

Estou perdendo algo que permitiria que o LoggingSoapExtension fosse executado em solicitações $ .ajax ()?

Atualizar

@ Chris Brandsma

Pode ser porque você está solicitando resultados do Json em vez de XML através do seu serviço da web (dataType: "json"). Portanto, o atributo ScriptService está sendo ativado, mas você não está enviando mensagens SOAP.

Isso responde porque o SoapExtension não está funcionando. Alguma sugestão para rastreamento com ScriptService? A única coisa que vem à mente é uma classe base ScriptService que fornece um método para registrar uma solicitação. Mas então eu teria que chamar esse método em todos os WebMethod em todos os WebService ScriptService (eu tenho muito poucos). Gostaria de usar algo tão limpo e simples quanto um atributo SoapExtension, se possível.

questionAnswers(3)

yourAnswerToTheQuestion