While you can use the OnStart event of HttpApplication to intercept when the service starts as well as IHttpModule for intercepting requests, это не правильный способ выполнения этих перехватов в WCF.
Единственная причина, по которой эта рекомендация работает, заключается в том, что вы размещаетесь в IIS и используете привязки IIS. Тем не менее, службы WCF можно размещать где угодно, и вы можете обнаружить, что вы перемещаете свой сервис в процесс обслуживания, а также изменяете привязки (например, вы можете использовать net-tcp вместо http, в таком случае, как бы вы прочитайте содержимое, входящее в реализацию IHttpModule? Вы не смогли бы), из-за чего эти перехватчики могли бы сломаться.
Сказанное: в идеале вы должны выполнить любую инициализацию перед созданием своего экземпляра ServiceHost. Однако, поскольку у вас нет доступа к экземпляру ServiceHost в WCF в IIS, вам необходимо будет выполнить пользовательские настройки ServiceHostFactory и specify that factory in your svc file (see the section titled Using a Custom ServiceHost in IIS or WAS).. Такой подход сделает его переносимым.
Что касается перехвата вызовов, вы можете сделать это на клиенте и на стороне обслуживания. На стороне клиента вы должны реализовать IClientMessageInspector, а на стороне сервера - IDispatchMessageInspector (предположим, что вы хотите использовать последний).
Для «инжекции» этого инспектора со стороны обслуживания вам необходимо будет использовать поведение конечной точки (которое будет применяться к определенной конечной точке службы, реализация IEndpointBehavior) или поведение службы (что относится к все конечные точки на службе, через реализацию IServiceBehavior interface).
Именно с помощью этих реализаций вы бы посмотрели на ServiceEndpoint (для поведения в конечных точках) или ServiceDescription, чтобы применить реализацию вашего инспектора или любого другого крючка, доступного в WCF.
Вы можете прочитать Paolo Pialorsi's "Writing a WCF Message Inspector" для полного прочтения того, как собрать все это вместе и дать вам представление о пользовательском поведении в WCF.
Вы конкретно используете WCF? Если да, используете ли вы его в IIS или вне его? – casperOne
В этом отношении, что такое фильтр Java точно? – casperOne
@casperOne: Использование WCF для веб-сервисов (серверных веб-сервисов) в IIS. Вы можете посмотреть фильтр как «перехватчик». Как только запрос делается на веб-ресурс, фильтр может предварительно обработать (или выполнить пост-обработку или оба) запрос (или ответ). Одно использование для фильтров (в привязке) может регистрироваться, несколько применений исходящих фильтров включают добавление заголовков (думаю, нет кеша) и сжатие ответов (gzip) – iggymoran