2015-02-23 3 views
0

Я запускаю ServiceStack версии 4.x, и я создал настраиваемый атрибут фильтра запроса (он наследует от RequestFilterAttribute).Атрибут фильтра запроса не выполняется на ServiceStack

У меня есть некоторые методы класса с использованием этого настраиваемого атрибута с параметром ApplyTo. Всякий раз, когда я использую обычные HTTP-вызовы, фильтр запускается отлично, проблема возникает, когда одна из моих служб вызывает internaly метод из другой службы, тогда фильтр не выполняется.

Согласно документации, которую можно найти здесь:

Order of operations

Для не вызовов HTTP, запроса фильтров с приоритетом> = 0 будет выполняться непосредственно перед фильтрами действий.

Я понятия не имею, почему это не работает, возможно, это ошибка в реализации, или я неправильно понял документацию.

Любая идея, как решить это или обходной путь?

ответ

0

Обратите внимание на non-HTTP Global Request Filters связан с Messaging Global Request and Response Filters документы, которые относятся к запросу Фильтры MQ, то есть:

appHost.GlobalMessageRequestFilters 
appHost.GlobalMessageResponseFilters 

Только appHost.PreRequestFilters выполняются везде, то есть для каждого Raw HTTP Handler, HTTP или MQ службы и т.д. .

+0

Итак, нет абсолютно никакого атрибута метода, который будет вызываться для каждого запроса (http и non http)? – PizergSensing

+0

@PizergSensing 'appHost.PreRequestFilters' выполняется по запросу http/non http. Что вы подразумеваете под атрибутом метода? FilterAttributes на методах также должны выполняться в контексте http/non-http. – mythz

+0

RequestFilterAttributes не выполняются для прямых вызовов службы, отличных от HTTP – PizergSensing