IIS FTP 7.5可扩展性(IFtpLogProvider并将FTP故障记录到事件日志中)

任何熟悉IIS 7.5中的FTP可扩展性的人都知道我可能做错了什么?

我很难让IFtpLogProvider的实现正常工作以进行自定义日志记录。 我想要做的就是将超出静态阈值的故障记录到事件日志中,并且经常进行垃圾收集。 我已经尝试过使用通用字典和提供程序而没有运气,现在即使这些简单的代码我也无法工作。 提供程序甚至不在下面的代码存根中创建事件日志(或者如果我事先创建它,则使用它)。 所以现在我很困惑。

我按照说明在VS内部签名后注册程序集,我可以确认它已添加到GAC中。 通过Register Custom Providers选项将它添加到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)在注册大会时我并没有密切关注罗伯特的建议。 我选中了复选框,这使其成为身份validation提供程序,而此代码示例不是。 我改为启用基本身份validation,禁用匿名身份validation(在我的情况下),并取消选中教程中提到的框 – “清除提供程序列表中的FtpLoggingDemo复选框”。

3)我没有使用AppCmd(或直接修改applicationHost.config中的相应部分)来更新applicationHost.config中的自定义提供程序部分

      

做这三件事就解决了这个问题。