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":
(attenzione, gestisci il tutto con estensione aspX altrimenti perdi le funzionalità dell'handler)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>
2) Sviluppa una semplice classe come questa ed inseriscila nella cartella App_Code (in modo che il framework si occupi automaticamente della compilazione):
Per maggiori info (non è per far pubblicità!): http://blog.devexperience.net/it/10/...dler_Http.aspxcodice: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) { } } }
Fammi sapere
![]()

Rispondi quotando