Tridion UGC APIに基づいてスパムフィルターを実装しましたが、それを利用するようにUGCWebサービスを構成したいと思います。これまでのところ、サービスを介してコメントを追加するときにスパムフィルターが呼び出されていないようです。私の現在の構成は次のとおりです。
アセンブリ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
デバッグモードでログを記録していますが、スパムフィルターアセンブリまたは同様のもののロードに関連する可能性のある出力が表示されません。この機能を機能させるには、他にどのような構成変更が必要ですか?問題についてさらに発見するために、他にどのようなテストを適用できますか?
問題は、SpamFilterをWebサービスにインストールしようとしていることだと思います。ドキュメントに記載されているように、SpamFilterはWebアプリケーションで構成する必要があります。
3-WebアプリケーションのルートフォルダーにあるUGCWebアプリケーションの構成ファイルweb.configを開いて、スパムフィルターを構成します。
Raulは正しいです.... UGCのSpamFilterは、UGCWebサービスではなく実際のWebサイトで構成する必要があります。 SpamFilterは、UGC WSへの呼び出しが行われる前に、UGCServerControlsによって呼び出されることに注意してください。詳細については 公式ドキュメント を確認してください
お役に立てれば。