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

2023-12-06

任何非常熟悉 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,版本=1.0.0.0,文化=中立,PublicKeyToken=

2)我没有closely注册程序集时请遵循罗伯特的建议。我选中了该复选框,这将其保留为身份验证提供程序,而此代码示例不是。相反,我启用了基本身份验证,禁用了匿名身份验证(在我的情况下),并且未经检查的教程中提到的框 - “清除提供程序列表中的 FtpLoggingDemo 复选框。”

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IIS FTP 7.5 扩展性(IFtpLogProvider 并将 FTP 故障记录到事件日志中) 的相关文章

随机推荐