【问题标题】:Request Filter Attribute not executing on ServiceStack请求过滤器属性未在 ServiceStack 上执行
【发布时间】:2015-02-23 18:11:40
【问题描述】:

我正在运行 ServiceStack 4.x 版,并且我创建了一个自定义请求过滤器属性(它继承自 RequestFilterAttribute)。

我有一些使用带有 ApplyTo 参数的自定义属性的类方法。每当我使用正常的 HTTP 调用时,过滤器都会完美执行,当我的一个服务在内部调用另一个服务的方法时,问题就出现了,然后过滤器就不会被执行。

根据可在此处找到的文档:

Order of operations

对于非 HTTP 调用,优先级 >= 0 的请求过滤器将在操作过滤器之前执行。

我不知道为什么这不起作用,可能是实现中的错误或我误解了文档。

知道如何解决这个问题或解决方法吗?

【问题讨论】:

    标签: rest filter servicestack


    【解决方案1】:

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

    appHost.GlobalMessageRequestFilters
    appHost.GlobalMessageResponseFilters
    

    只有appHost.PreRequestFilters 在任何地方执行,即针对每个原始 HTTP 处理程序、HTTP 或 MQ 服务等。

    【讨论】:

    • 所以绝对不会为每个请求(http 和非 http)调用方法属性?
    • @PizergSensing appHost.PreRequestFilters 在 http/non http 请求上执行。方法属性是什么意思?方法上的 FilterAttributes 也应该在 http/non-http 上下文中执行。
    • 对非http直接服务调用不执行RequestFilterAttributes
    • @PizergSensing 当它们被归因于方法本身时,它们应该是。
    猜你喜欢
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2013-01-05
    • 1970-01-01
    • 2018-04-07
    • 1970-01-01
    相关资源
    最近更新 更多