У меня есть пользовательский IHttpModule, который используется для регистрации всех HTTP-запросов и ответов, и в настоящее время он работает очень хорошо, но я бы хотел его расширить поэтому я могу определить, сколько времени ответит на самом деле.Могу ли я перехватить после того, как ответ был отправлен клиенту в модуле IHttpModule
Ответ регистрируется в событии HttpApplication.EndRequest, но это событие срабатывает до того, как запрос действительно отправлен веб-клиенту. Хотя это позволяет мне определить, сколько времени потребовалось серверу для обработки ответа, я также хотел бы узнать, сколько времени на самом деле понадобилось клиенту для получения ответа.
Есть ли событие или какой-либо другой механизм, который позволит мне перехватить после того, как клиент закончит получать ответ?
Вкратце ... нет. Сервер не имеет видимости, когда клиент получил данные, вам нужно будет использовать javascript для возврата на сервер. Они представляют собой много примеров этого, как открытого, так и коммерческого. Попробуйте интегрировать Glimpse –
Для приложений, которые меня больше всего интересуют протоколирование, я не контролирую клиентов, и эти клиенты делают SOAP-вызовы через HTTP. Похоже, ваш подход не будет осуществимым для моих нужд. Спасибо, в любом случае. – Cleggy
, как лучше всего вы могли бы работать, когда последний байт покинул сервер, но это по сути то же самое, что и журналы IIS, и, вероятно, потребуется фильтр ISAPI. –