2

IIS での FTP 7.5 の拡張性に精通している人は、私が何を間違っているのか知っていますか?

カスタム ロギングで 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);
    }
}
4

1 に答える 1

2

次の問題がありました。

1) IIS でのこのアセンブリの登録に間違ったクラス名がありました:

FtpLogging.FtpLogDemo、FtpLoggingDemo、バージョン = 1.0.0.0、文化 = ニュートラル、PublicKeyToken =

2)議会を登録するとき、私はロバートのアドバイスに厳密に従わなかった。チェックボックスをオンのままにして、これにより認証プロバイダーとして保持されましたが、このコード サンプルではそうではありません。代わりに、基本認証を有効のままにし、匿名認証を無効にし (私の場合)、チュートリアルに記載されているボックスのチェックを外しました

3) applicationHost.config のカスタム プロバイダー セクションを更新するために AppCmd を使用していませんでした (または applicationHost.config の適切なセクションを直接変更していません)。

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

これら3つのことを行うと、問題が修正されました。

于 2010-01-18T23:09:59.413 に答える