gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 11:51:29 26 4
gpt4 key购买 nike

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

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

在 VS 中签名程序集后,我按照说明注册程序集,我可以确认它已添加到 GAC。通过 Register Custom Providers 选项将其添加到 IIS 7.5 似乎也不错。

如果您能提供具体建议,我们将不胜感激,即使有了 Robert McMurray 提供的一系列优秀教程,我仍然遇到这些问题。顺便说一下,我在 2008 R2 机器上运行它,使用托管代码的接口(interface)。

stub 如下:

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) 在注册程序集时,我没有严格遵循 Robert 的建议。我选中了该复选框,这将它保留为身份验证提供程序,而此代码示例不是。相反,我启用了基本身份验证,禁用了匿名身份验证(在我的例子中),并且未选中教程中提到的复选框——“清除提供商列表中的 FtpLoggingDemo 复选框。”

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

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

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

关于c# - IIS FTP 7.5 可扩展性(IFtpLogProvider 并将 FTP 故障记录到事件日志中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2032198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com