#c# #rest #wcf
#c# #rest #wcf
Вопрос:
Все,
У меня есть пара служб WCF и одна служба rest, которая использует ClientMessageInspector и ServerMessageInspector для аутентификации токена. Есть ли какой-либо способ узнать в ClientMessageInspector и ServerMessageInspector, поступает ли запрос из WCF или REST
Что-то вроде в ClientMessageInspector
public class ClientMessageInspector : IClientMessageInspector {
public object BeforeSendRequest (ref Message request, IClientChannel channel) {
if (request header is WCF) {
// Do Something
} else if (request header Rest) {
// Do Something
}
}
}
Что-то вроде в ServerMessageInspector
public class ServerMessageInspector : IDispatchMessageInspector {
public object AfterReceiveRequest (ref Message request, IClientChannel channel, InstanceContext instanceContext) {
if (request header is WCF) {
// Do Something
} else if (request header Rest) {
// Do Something
}
}
}
Комментарии:
1. Добавив точки останова, мы можем обнаружить, что запрос в привязке Web HTTP находится в потоковом режиме. Попробуйте проверить тип запроса. является ли это обходным путем?
2. @AbrahamQian… Спасибо за ответ. не могли бы вы, пожалуйста, предоставить мне образец кода для этого, пожалуйста.
3. @AbrahamQian.. Не могли бы вы, пожалуйста, предоставить пример кода для этого, означает, как проверить привязку запроса в потоковом режиме?.
4. В непотоковом режиме тип запроса — BufferedMessage. Мы можем напрямую распечатать содержимое переменной запроса, но в webhttpbinding тип запроса — это NullMessage, который не может быть выведен напрямую.
5. если (запрос. GetType().Name==»NullMessage») { } else, если (запрос. GetType().Name==»BufferedMessage») { }