IIS 7 интегрированный конвейер - изменение ответа HTML

Я пытаюсь написать расширение IIS, которое изменяет HTML-ответ для запроса при его отправке обратно клиенту. Я знаю, что традиционно это будет работа фильтра ISAPI, однако я являюсь разработчиком.Net, и я читал, что реализация фильтра ISAPI в.Net - плохая идея.

В нескольких местах я читал, что новый блестящий интегрированный конвейерный режим IIS 7 теперь должен позволять мне писать модули в.Net, которые обеспечивают ту же функциональность, что и фильтры ISAPI, путем реализации IHttpModule, однако я не могу понять, как изменить HTML-ответ для запросов, не относящихся к ASP.Net.

Единственный ресурс, который я нашел о том, как я могу это сделать, - это эта статья, однако она не работает для ресурсов, не относящихся к ASP.Net, или в тех случаях, когда HttpApplication.CompleteRequest вызывается, даже если включен режим интегрированного конвейера.

Как я могу написать модуль IIS в C#, который позволяет мне изменять html / data ответа на все запросы?

2 ответа

Я думаю, вам придется направлять все ваши запросы через модуль ASP.NET.

Не уверен, что это действительно выполнимо с.NET, но зацените это http://aspnetresources.com/articles/CustomErrorPages esp. часть об установке HttpModule - возможно, это больше зависит от того, как IIS видит ваш модуль.

Хотя я и с вами, что.NET-ISAPI-Filter - плохая идея, я все же проверил бы это, чтобы увидеть, насколько это повлияет на ваш случай.

Действительно сложным вариантом было бы реализовать локальный прокси-сервер (т. Е. Либо вы можете написать сервер на основе HttpListener, либо использовать библиотеку для упрощения реализации), который прослушивает порты, которые должны быть открыты, и реконфигурирует IIS для использования других портов / localhost только... таким образом, вы можете фильтровать все, что хотите... хотя это тоже повлияет на производительность.

Другие вопросы по тегам