IIS FTP 7.5拡張性(IFTPlogProviderおよびログFTP障害のイベントログ)
質問
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);
}
}
解決
次の問題がありました。
1) IISでのこのアセンブリの登録で、誤ったクラス名がありました。
ftplogging.ftplogdemo、ftploggingdemo、version = 1.0.0.0、culture = neutral、publickeytoken =
2) 私はしませんでした 密接に アセンブリを登録するときは、ロバートのアドバイスに従ってください。チェックボックスをチェックしたままにしておき、これにより認証プロバイダーとして保持されましたが、このコードサンプルはそうではありません。代わりに、私は基本的な認証を有効にし、無効にした匿名の承認(私の場合)、そして チェックされていない チュートリアルに記載されているボックス - 「プロバイダーリストのftploggingdemoチェックボックスをクリアします。」
3) AppCMDを使用していませんでした(またはApplicationHost.configの適切なセクションを直接変更する)
<customFeatures>
<providers>
<add name="FtpLoggingDemo" enabled="true" />
</providers>
</customFeatures>
これらの3つのことを行うと、問題が解決しました。