IIS FTP 7.5 Erweiterbarkeit (IFTPLOGPROVIDER- und Protokollierung von FTP -Fehlern für das Ereignisprotokoll)

StackOverflow https://stackoverflow.com/questions/2032198

  •  19-09-2019
  •  | 
  •  

Frage

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

Ich habe ernsthafte Probleme, eine Implementierung von iftPlogProvider zu erhalten, um korrekt für die benutzerdefinierte Protokollierung zu arbeiten. Alles was ich tun möchte, ist Protokollversagen über eine statische Schwelle für das Ereignisprotokoll hinaus und ab und zu Müllsammlung. Ich habe versucht, mit einem generischen Wörterbuch und dem Anbieter ohne Glück zu arbeiten, und jetzt kann sogar dieses einfache Stück Code ich nicht arbeiten kann. Der Anbieter erstellt nicht einmal das Ereignisprotokoll in den folgenden Codestub (oder verwendet es, wenn ich es vorher erstelle). Also bin ich jetzt zutiefst verwirrt.

Ich folge den Anweisungen, um die Baugruppe zu registrieren, nachdem sie von innerhalb von VS unterschrieben wurde, und ich kann bestätigen, dass sie dem GAC hinzugefügt wird. Das Hinzufügen von IIS 7.5 über die Option "Custom Providers" zu IIS 7.5 scheint auch in Ordnung zu sein.

Jede Hilfe bei spezifischen Vorschlägen wäre sehr geschätzt, da ich auch mit den hervorragenden Tutorials von Robert McMurray diese Probleme immer noch habe. Ich betreibe dies übrigens in einer 2008 R2 -Box, und verwende die Schnittstelle für verwalteten Code.

Stub 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);
    }
}
War es hilfreich?

Lösung

Ich hatte die folgenden Probleme:

1) Ich hatte einen falschen Klassennamen bei meiner Registrierung dieser Versammlung in IIS:

Ftplogging.ftplogdemo, ftploggingDemo, Version = 1.0.0.0, Kultur = neutral, PublicKeyToken =

2) Ich hab nicht eng Befolgen Sie Roberts Ratschläge, wenn Sie die Versammlung registrieren. Ich habe das Kontrollkästchen überprüft, und dies hielt es als Authentifizierungsanbieter, was dieses Code -Beispiel nicht ist. Ich habe stattdessen grundlegende authaktivierte, deaktivierte anonyme Auth (in meinem Fall) gelassen und deaktiviert Das im Tutorial genannte Feld "Löschen Sie das Kontrollkästchen ftploggingDemo in der Liste der Anbieter."

3) Ich habe AppCMD nicht verwendet (oder den entsprechenden Abschnitt in ApplicationHost.config direkt geändert), um den Abschnitt benutzerdefinierter Anbieter in ApplicationHost.config zu aktualisieren

<customFeatures>
    <providers>
        <add name="FtpLoggingDemo" enabled="true" />
    </providers>
</customFeatures>

Das Durchführen dieser drei Dinge hat das Problem behoben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top