Extensibilidad de IIS FTP 7.5 (IFtpLogProvider y registro de fallas de FTP en el registro de eventos)

¿Alguien que esté bastante familiarizado con la extensibilidad de FTP 7.5 en IIS sabe que podría estar haciendo mal?

Estoy teniendo serios problemas para que una implementación de IFtpLogProvider funcione correctamente para el registro personalizado. Todo lo que quiero hacer es registrar las fallas más allá de un umbral estático en el registro de eventos y tener recolección de basura cada cierto tiempo. He intentado trabajar con un diccionario genérico y el proveedor sin suerte, y ahora incluso con este simple código no puedo trabajar. El proveedor ni siquiera está creando el registro de eventos en el código auxiliar a continuación (o lo está utilizando si lo creo de antemano). Así que ahora estoy profundamente confundido.

Sigo las instrucciones para registrar el ensamblaje una vez firmado desde VS y puedo confirmar que se agregó al GAC. Añadirlo a IIS 7.5 a través de la opción Registrar proveedores personalizados también parece estar bien.

Cualquier ayuda con sugerencias específicas sería muy apreciada, ya que incluso con el excelente conjunto de tutoriales de Robert McMurray, todavía tengo estos problemas. Por cierto, estoy ejecutando esto en una caja 2008 R2 usando la interfaz para el código administrado.

Talón abajo:

using System;
using System.Collections.Generic;
using System.Collections.Specialized;
using System.Configuration.Provider;
using System.Data;
using System.Data.SqlClient;
using System.Diagnostics;
using System.Diagnostics.Eventing;
using System.Text;
using Microsoft.Web.FtpServer;
using System.IO;

public class test: BaseProvider, IFtpLogProvider
{

    void IFtpLogProvider.Log(FtpLogEntry loggingParameters)
    {
        if (!EventLog.SourceExists("TEST"))
        {
            EventLog.CreateEventSource("TEST", "TEST");
        }

        // Just trying to get anything into this log, like a list of
        // USER attempts or something
        EventLog.WriteEntry("TEST", loggingParameters.Command);

    }

    // Mark an IP address for banning.
    private void BanAddress(string ipAddress)
    {
        EventLog.WriteEntry("TEST", ipAddress, EventLogEntryType.Warning, 9010);
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta