Gestire gli HttpHandlers non è una cosa semplicissima. Si tratta di interfacciarsi con proprietà e metodi molto complessi.
Sicuramente devi realizzare una pagina ASP che risponde sia intercettando l'ID nel QueryString che anche come URL della pagina.
Poi, a gestire le richieste Http ci penseranno le classi .Net.
I passi da seguire:
1) modificare il file web.config per gestire le richieste Http e farle indirizzare ad una classe specifica della tua applicazione
2) sviluppare la classe che gestirà queste richieste
1) Aggiungi al file web.config gli URL che intendi "intercettare":
codice:
<compilation>
<buildProviders>
<add extension=".asp" type="System.Web.Compilation.PageBuildProvider"/>
</buildProviders>
</compilation>
<!--
Qui invece vengono intercettati tutti gli URL indicati di seguito.
In questo caso, ad es., l'url http://www.html.it/Articoli/zofm.aspx viene intercettato e rimandato alla classe devHttpHandler
-->
<httpHandlers>
<add verb="*" path="/Articoli/*.aspx" type="devHttpHandler.HandleIt" />
<add verb="*" path="/Articoli/*.aspx" type="devHttpHandler.HandleIt" />
</httpHandlers>
(attenzione, gestisci il tutto con estensione aspX altrimenti perdi le funzionalità dell'handler)
2) Sviluppa una semplice classe come questa ed inseriscila nella cartella App_Code (in modo che il framework si occupi automaticamente della compilazione):
codice:
using System;
using System.Web;
using System.Web.UI;
using System.Globalization;
namespace devHttpHandler
{
public class HandleIt : IHttpHandlerFactory
{
public IHttpHandler GetHandler(HttpContext context, string requestType, string url, string pathTranslated)
{
// ritorno l'IHttpHanlder
// I parametri da passare sono:
// virtualPath (il path della richiesta),
// inputFile (il percorso fisico del file da richiamare),
// context (ritorno quello ricevuto al momento della richiesta)
return PageParser.GetCompiledPageInstance("/pagina.asp", context.Server.MapPath("/pagina.asp"), context);
}
public void ReleaseHandler(IHttpHandler handler)
{
}
}
}
Per maggiori info (non è per far pubblicità!): http://blog.devexperience.net/it/10/...dler_Http.aspx
Fammi sapere