IIS 7 интегрированный конвейер - изменение ответа HTML - PullRequest
0 голосов
/ 02 ноября 2011

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

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

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

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

Ответы [ 2 ]

0 голосов
/ 03 ноября 2011

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

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

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

0 голосов
/ 03 ноября 2011

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

...