Я реализовал спам-фильтр на основе Tridion UGC API, и теперь я хочу настроить свой веб-сервис UGC для его использования. Пока что фильтр спама не запускается при добавлении комментария через службу. Моя текущая конфигурация выглядит следующим образом:
Я поместил сборочную DLL в каталог 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
У меня ведется журнал в режиме отладки, и я не вижу никаких выходных данных, которые могут относиться к загрузке сборки спам-фильтра или чему-либо подобному. Какие еще изменения конфигурации мне могут потребоваться, чтобы эта функция заработала? Какие еще тесты я могу применить, чтобы узнать больше о проблеме?
Я думаю, проблема заключается в попытке установить SpamFilter в веб-сервисе. Как указано в документации, SpamFilter необходимо настроить в веб-приложении:
3- Настройте фильтр спама, открыв файл конфигурации веб-приложения UGC, web.config, расположенный в корневой папке веб-приложения.
Рауль прав ... SpamFilter для UGC необходимо настроить на реальном веб-сайте, а не в UGC WebService. Обратите внимание, что SpamFilter вызывается UGC ServerControls перед любым вызовом UGC WS. Проверьте официальные документы Больше подробностей
Надеюсь это поможет.