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

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

  •  19-09-2019
  •  | 
  •  

Pregunta

¿Alguien bastante familiarizado con la extensibilidad FTP 7.5 en II sabe lo que podría estar haciendo mal?

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

Sigo las instrucciones para registrar el ensamblaje después de que se firme desde dentro de VS y puedo confirmar que se agrega al GAC. Agregarlo a IIS 7.5 a través de la opción de proveedores personalizados de registro 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. Estoy ejecutando esto en un cuadro R2 2008, por cierto, usando la interfaz para el código administrado.

Stub debajo:

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);
    }
}
¿Fue útil?

Solución

Tuve los siguientes problemas:

1) Tuve un nombre de clase incorrecto en mi registro de esta asamblea en IIS:

FtPlogging.ftPlogDemo, ftPloggingDemo, versión = 1.0.0.0, cultura = neutral, publickeyToken =

2) No hice cercanamente Siga el consejo de Robert al registrar la asamblea. Dejé la casilla de verificación marcada, y esto lo mantuvo como un proveedor de autenticación, que esta muestra de código no es. En su lugar, dejé la autenticación básica habilitada, desactivado Anónimo Auth (en mi caso) y desenfrenado La casilla mencionada en el tutorial: 'Borre la casilla de verificación FTPLOGGINGDEMO en la lista de proveedores'.

3) No estaba utilizando APPCMD (o modificando la sección apropiada en ApplicationHost.Config directamente) para actualizar la sección de proveedores personalizados en ApplicationHost.Config

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

Hacer estas tres cosas solucionó el problema.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top