我已经实现了一个基于 Tridion UGC API 的垃圾邮件过滤器,现在我希望配置我的 UGC 网络服务来使用它。到目前为止,在通过该服务添加评论时似乎没有调用垃圾邮件过滤器。我目前的配置如下:
我已将程序集 DLL 放在 Web 服务应用程序的 bin 目录中。我编辑了web.config
文件以添加以下内容:
<appSettings>
<add key="Comment.SpamFilter.Implementation" value="UGCDemo.BadWordsFilter"/>
<add key="Comment.SpamFilter.Assembly" value="SpamFilter.dll"/>
</appSettings
我能够验证实现类和程序集的名称,如下面的 PowerShell 输出所示:
PS C:\inetpub\LiveCDService
> ls
Directory: C:\inetpub\LiveCDService
Mode LastWriteTime Length Name
---- ------------- ------ ----
d---- 5/28/2012 5:05 PM bin
-a--- 11/4/2011 3:38 PM 212 access_token.svc
-a--- 11/4/2011 3:38 PM 323 Global.asax
-a--- 11/4/2011 3:38 PM 138 linking.svc
-a--- 11/4/2011 3:38 PM 198 odata.svc
-a--- 5/28/2012 5:41 PM 11073 Web.config
-a--- 5/28/2012 5:10 PM 11073 Web.config~
PS C:\inetpub\LiveCDService
> add-type -path .\bin\SpamFilter.dll
PS C:\inetpub\LiveCDService
> $foo = new-object UGCDemo.BadWordsFilter
PS C:\inetpub\LiveCDService
> $foo | gm
TypeName: UGCDemo.BadWordsFilter
Name MemberType Definition
---- ---------- ----------
Equals Method bool Equals(System.Object obj)
GetHashCode Method int GetHashCode()
GetType Method type GetType()
ToString Method string ToString()
ValidateComment Method Tridion.ContentDelivery.UGC.Web.Model.Comment Valid
我在调试模式下进行日志记录,但看不到任何可能与加载垃圾邮件过滤器程序集或类似内容有关的输出。我可能需要进行哪些其他配置更改才能使此功能正常工作?我还可以应用哪些其他测试来发现更多关于该问题的信息?
我认为问题在于尝试在 Web 服务中安装 SpamFilter。如文档中所述,必须在 Web 应用程序中配置 SpamFilter:
Raul 是对的……UGC 的 SpamFilter 需要在实际网站上配置,而不是在 UGC WebService 中配置。请注意,在对 UGC WS 进行任何调用之前,UGC ServerControls 会调用 SpamFilter。查看官方文档以获取更多详细信息
希望这可以帮助。