2015-02-23 164 views
0

我正在运行ServiceStack 4.x版,并创建了自定义的请求筛选器属性(它从RequestFilterAttribute继承)。在ServiceStack上执行的请求筛选器属性

我有一些使用此自定义属性与ApplyTo参数的类方法。每当我使用普通的HTTP调用过滤器得到完美执行,问题出现时,我的一个服务调用内部来自另一个服务的方法,然后过滤器不执行。

根据可以在这里找到的文档:

Order of operations

对于非HTTP调用,优先请求滤镜> = 0将行动过滤器之前执行。

我不知道为什么这不起作用,也许是实施上的错误,或者我误解了文档。

任何想法如何解决这个问题或解决方法?

回答

0

注意non-HTTP Global Request Filters链接到Messaging Global Request and Response Filters文档,其指的是MQ请求过滤器,即:

appHost.GlobalMessageRequestFilters 
appHost.GlobalMessageResponseFilters 

只有appHost.PreRequestFilters到处都是执行,即对于每一个原始HTTP处理程序,HTTP或MQ服务等

+0

那么绝对没有任何方法属性会被每个请求(http和非http)调用? – PizergSensing 2015-02-24 08:47:35

+0

@PizergSensing'appHost.PreRequestFilters'在http /非http请求上执行。你的方法属性是什么意思?方法上的FilterAttributes也应该在http/non-http上下文中执行。 – mythz 2015-02-24 14:35:17

+0

RequestFilterAttributes不会为非http直接服务调用执行 – PizergSensing 2015-02-25 15:29:53