IIS FTP 7.5 Extensibility (IftplogProvider 및 Logging FTP 실패를 이벤트 로그에 로깅)

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

  •  19-09-2019
  •  | 
  •  

문제

IIS의 FTP 7.5 Extensibility에 익숙한 사람이 내가 뭘 잘못하고 있는지 알고 있습니까?

IFTPlogProvider를 구현하여 사용자 정의 로깅을 올바르게 작동하기 위해 심각한 문제가 있습니다. 내가하고 싶은 것은 이벤트 로그까지 정적 임계 값을 넘어 로그 오류를하고,마다 쓰레기 수집을 자주하는 것입니다. 나는 일반 사전과 운이없는 공급 업체와 함께 일하려고 노력했으며 이제는이 간단한 코드조차도 작동 할 수 없습니다. 제공자는 아래 코드 스텁에서 이벤트 로그를 작성하지도 않습니다 (또는 미리 작성한 경우 사용). 그래서 지금 나는 깊이 혼란스러워합니다.

나는 VS 내에서 서명 한 후 어셈블리를 등록하기 위해 지침에 따라 GAC에 추가되었는지 확인할 수 있습니다. 레지스터 사용자 정의 제공 업체 옵션을 통해 IIS 7.5에 추가하는 것도 괜찮은 것 같습니다.

Robert McMurray의 훌륭한 튜토리얼 세트를 사용하더라도 여전히 이러한 문제가 있기 때문에 구체적인 제안에 대한 도움은 크게 감사 할 것입니다. 그런데 관리 코드의 인터페이스를 사용하여 2008 R2 박스에서 이것을 실행하고 있습니다.

아래 스터브 :

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);
    }
}
도움이 되었습니까?

해결책

다음과 같은 문제가있었습니다.

1) IIS 에서이 어셈블리를 등록 할 때 부정확 한 클래스 이름이있었습니다.

ftplogging.ftplogdemo, ftploggingdemo, 버전 = 1.0.0.0, 문화 = 중립, publicKeyToken =

2) 나는하지 않았다 면밀히 어셈블리를 등록 할 때 Robert의 조언을 따르십시오. 확인란을 확인했는데 이는이 코드 샘플이 아닌 인증 제공 업체로 유지했습니다. 대신 기본 인증 활성화, 비활성화 된 익명 인증 (내 경우)을 남겼습니다. 확인되지 않았습니다 튜토리얼에 언급 된 상자 - '제공자 목록에서 ftploggingdemo 확인란을 지우십시오.'

3) ApplCMD를 사용하지 않았거나 Applicationhost.config에서 사용자 정의 제공 업체 섹션을 업데이트하기 위해 Applickd (또는 Applicationhost.config에서 직접 수정)를 사용하지 않았습니다.

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

이 세 가지 일을하면 문제가 해결되었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top