Я хочу использовать HTTP-обработчик для создания RSS-каналов.
Для этой цели я хочу поместить свою логику для создания XML-класса rss в классе C #, который реализует IHttpHandler, затем «отобразить» этот обработчик в файл web.config и зарегистрировать «сопоставленное имя» в моей маршрутизации. правила. Я делаю что-то вроде этого:
Мой HTTPHanlder:
public class RSSFeedHandler:IHttpHandler
{
public void ProcessRequest( HttpContext context )
{
//logic for building the XML
context.Response.ContentType = "text/xml";
context.Response.Write( XMLContent);
.....................................
Мой Web.Config:
<httpHandlers>
<add path="Rss" verb="*" type="RSSFeedHandler" validate="false" />
.......
<handlers>
<add name="RSSFeedHandler" path="Rss" verb="*" type="RSSFeedHandler" />
........
Мой указатель маршрутизации в global.asax:
RoutingHandler rssHandler = new RoutingHandler( "~/rss" );
.........
routes.Add( new Route( "rss/{type}/{id}", rssHandler ) );
Мой Маршрутный Hanlder:
public class RoutingHandler : IRouteHandler
{
............................
public IHttpHandler GetHttpHandler( RequestContext requestContext )
{
Итак, я хочу, чтобы в адресной строке пользователь вводил что-то вроде: www.mysite.com/rss/news/25, например,
сервер, чтобы выполнить логику из обработчика HTTP и показать RSS-канал для типа «новости» с идентификатором «25». (эти параметры маршрутизации должны быть проанализированы в моем RSS HTTPHanlder)
Проблема в том, что при вызове URL-адреса, аналогичного указанному выше, в методе GetHttpHandler возникает ОШИБКА, которая говорит: «Файл '/ Rss' не существует».
Я думаю, это потому, что этот метод был вызван перед «отображением» в web.config, но я не уверен.
Знаете ли вы, как мне достичь желаемой функциональности?