IIS FTP 7.5 Rozszerzalność (IFtpLogProvider i rejestrowanie błędów FTP w dzienniku zdarzeń)
Każdy, kto dobrze zna rozszerzenie FTP 7.5 w IIS, wie, co mogę robić źle?
Mam poważne problemy z uzyskaniem implementacji IFtpLogProvider do poprawnej pracy przy niestandardowym logowaniu. Wszystko, co chcę zrobić, to rejestrować awarie poza statycznym progiem do dziennika zdarzeń i mieć co jakiś czas zbieranie śmieci. Próbowałem pracować ze słownikiem ogólnym i dostawcą bez powodzenia, a teraz nawet ten prosty fragment kodu nie może działać. Dostawca nie tworzy nawet dziennika zdarzeń w poniższym kodzie kodu (lub używa go, jeśli wcześniej go utworzę). Więc teraz jestem głęboko zdezorientowany.
Postępuję zgodnie z instrukcjami, aby zarejestrować zespół po podpisaniu go z VS i mogę potwierdzić, że jest on dodawany do GAC. Dodanie go do IIS 7.5 za pomocą opcji Zarejestruj niestandardowych dostawców również wydaje się być w porządku.
Jakakolwiek pomoc z konkretnymi sugestiami byłaby bardzo mile widziana, ponieważ nawet z doskonałym zestawem samouczków Roberta McMurray nadal mam te problemy. Nawiasem mówiąc, uruchamiam to na pudełku z 2008 R2, używając interfejsu kodu zarządzanego.
Stub poniżej:
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);
}
}