Extensibilidade do IIS FTP 7.5 (IFtpLogProvider e registro de falhas de FTP no log de eventos)
Alguém bem familiarizado com a extensibilidade do FTP 7.5 no IIS sabe o que eu poderia estar fazendo errado?
Estou tendo sérios problemas para obter uma implementação do IFtpLogProvider para funcionar corretamente para log personalizado. Tudo o que quero fazer é registrar falhas além de um limite estático no log de eventos e ter coleta de lixo de vez em quando. Eu tentei trabalhar com um dicionário genérico e o provedor sem sorte, e agora até mesmo esse simples código não consigo trabalhar. O provedor não está nem criando o log de eventos no código abaixo (ou usando-o se eu os criar de antemão). Então agora estou profundamente confuso.
Eu sigo as instruções para registrar o assembly depois que ele é assinado no VS e posso confirmar que ele foi adicionado ao GAC. Adicioná-lo ao IIS 7.5 por meio da opção Register Custom Providers (Provedores Personalizados de Registros) parece estar bem também.
Qualquer ajuda com sugestões específicas seria muito apreciada, pois mesmo com o excelente conjunto de tutoriais de Robert McMurray ainda estou tendo esses problemas. Estou correndo isso em uma caixa 2008 R2, a propósito, usando a interface para o código gerenciado.
Esboço abaixo:
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);
}
}