我已经基于 Tridion UGC API 实现了垃圾邮件过滤器,现在我希望配置我的 UGC Web 服务以使用它。到目前为止,通过服务添加评论时似乎不会调用垃圾邮件过滤器。我当前的配置如下:
我已将程序集 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
我已将日志记录置于调试模式,但看不到任何可能与加载垃圾邮件过滤器程序集或类似内容相关的输出。我可能需要进行哪些其他配置更改才能使此功能正常运行?我还可以应用哪些其他测试来发现有关该问题的更多信息?
答案1
我认为问题在于尝试在 Web 服务中安装 SpamFilter。如文档中所述,必须在 Web 应用程序中配置 SpamFilter:
3- 通过打开 UGC Web 应用程序的配置文件 web.config(位于 Web 应用程序的根文件夹中)来配置垃圾邮件过滤器
答案2
Raul 是对的……UGC 的 SpamFilter 需要在实际网站上配置,而不是在 UGC WebService 中配置。请注意,在对 UGC WS 进行任何调用之前,UGC ServerControls 会调用 SpamFilter。检查官方文档更多细节
希望这可以帮助。