任何非常熟悉 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(使用前将#替换为@)