IIS FTP 7.5-Erweiterbarkeit (IFtpLogProvider und Protokollieren von FTP-Fehlern im Ereignisprotokoll)

Wer mit der FTP 7.5-Erweiterbarkeit in IIS vertraut ist, weiß, was ich möglicherweise falsch mache?

Ich habe ernsthafte Probleme damit, eine Implementierung von IFtpLogProvider für die benutzerdefinierte Protokollierung ordnungsgemäß auszuführen. Alles, was ich tun möchte, ist, Fehler über einen statischen Schwellenwert im Ereignisprotokoll zu protokollieren und von Zeit zu Zeit Speicherbereinigungen durchzuführen. Ich habe ohne Glück versucht, mit einem allgemeinen Wörterbuch und dem Anbieter zu arbeiten, und jetzt kann ich selbst mit diesem einfachen Code nicht mehr arbeiten. Der Anbieter erstellt nicht einmal das Ereignisprotokoll im folgenden Code-Stub (oder verwendet es, wenn ich es zuvor erstellt habe). Jetzt bin ich zutiefst verwirrt.

Ich folge den Anweisungen, um die Assembly zu registrieren, nachdem sie in VS signiert wurde, und kann bestätigen, dass sie dem GAC hinzugefügt wurde. Das Hinzufügen zu IIS 7.5 über die Option "Benutzerdefinierte Anbieter registrieren" scheint ebenfalls in Ordnung zu sein.

Jede Hilfe mit spezifischen Vorschlägen wäre sehr dankbar, da ich trotz der hervorragenden Tutorials von Robert McMurray immer noch diese Probleme habe. Ich starte dies übrigens auf einer 2008 R2-Box unter Verwendung der Schnittstelle für verwalteten Code.

Stummel unten:

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);
    }
}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage