26 messaggi dal 30 settembre 2006
Ciao a tutti!
Da un pò di tempo sto cercando una soluzione per risolvere il problema dell'url rewriting sui vari progetti che sto seguendo per migliorarli.
Tutti i progetti sono stati sviluppati in asp.net 2.0, e dopo un pò di esperimenti purtroppo non sono riuscita ad arrivare ad una soluzione rapida e semplice. Poi, per fortuna, leggendo qua e la, ho scoperto la nuova funzionalità del routing di asp.net 3.5 sp1 che dovrebbe decisamente aiutarmi.
Così mi sono messa a sperimentare su un progetto la conversione ad asp.net 3.5 e sto includendo il routing. Ma mi da dei problemi che non capisco. Ovvero, ho modificato il web.config includendo le varie parti per il routing, creata la classe che implementa l'interfaccia IRouteHandler, l'interfaccia per il parametro e implementata l'interfaccia nella pagina per interrogare la proprietà al posto della querystring, ma non arriva mai alla pagina effettiva. In debug l'applicazione intercetta inizialmente l'AppInitialize della classe per gestire il routing:
public static void AppInitialize()
{
using (RouteTable.Routes.GetWriteLock())
// Preparo il route per tutta l'applicazione
RouteTable.Routes.Add(new Route("Immobile/{Id}/pippo.aspx", new ImmobileRouteHandler()));
}

Quando poi vado nel link incriminato che dovrebbe intercettare il routing e cambiare in quello effettivo (da Immobile/00003/pippo.aspx a ViewDetail.aspx), mi intercetta la IHttpHandler IRouteHandler.GetHttpHandler(RequestContext rc), ma poi mi da errore "Impossibile creare una classe astratta."

IHttpHandler IRouteHandler.GetHttpHandler(RequestContext rc)
{
IImmobilePage p = BuildManager.CreateInstanceFromVirtualPath("~/ViewDetail.aspx", typeof(Page)) as IImmobilePage;
p.IdImmobile = Convert.ToString(rc.RouteData.Values["Id"]);

return p;
}

Quale potrebbe essere il problema?
Spero tanto in un aiuto!
Grazie mille
26 messaggi dal 30 settembre 2006
Ciao!
grazie intanto della risposta!
L'articolo Routing e dynamic data control di ASP.NET 3.5 SP1 è molto interessante e l'avevo già letto, l'ho usato come base, ma non è molto chiaro. Al di là che nel web.config bisogna aggiungere molte più cose rispetto al solo:
<httpModules>
<add name="UrlRoutingModule"
type="System.Web.Routing.UrlRoutingModule,
System.Web.Routing, Version=3.5.0.0, Culture=neutral,
PublicKeyToken=31BF3856AD364E35"/>
</httpModules>
ma aggiungere anche
<add assembly="System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> dentro gli assemblies
e <add verb="*" path="UrlRouting.axd" type="System.Web.Routing.UrlRoutingHandler, System.Web.Routing, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
dentro httpHandlers (altrimenti da un altro errore "The 'src' property had a malformed URL: Cannot use a leading .. to exit above the top directory..")

non capisco dove devo guardare in dettaglio per risolvere il problema.
Non mi è chiaro il discorso di IIS, io ho il 6 sul server, però in teoria se il percorso ha il finale xxx.aspx non serve mappare *.* sul filtro ISAPI, giusto?
E il debug con visual web developer 2008 express non dovrebbe andare correttamente comunque?
Altra cosa se non metto public static void AppInitialize(), non parte poi void Application_Start(object sender, EventArgs e) nel global.asax quindi è obbligatorio mettere l'AppInitialize()?
Per quanto riguarda i Dynamic data control non vorrei ancora implementarli, vorrei andare per step...
Grazie ancora!
26 messaggi dal 30 settembre 2006
Scusami ma l'esempio che mi hai passato non è molto chiaro, oltre a non funzionarmi... Ho trovato anche questo articolo con video allegato, esempio molto più semplice e chiaro, ma non mi funziona:

http://msdn.microsoft.com/it-it/library/cc668202.aspx

Più che altro il tipo lancia il debug e gli funziona tutto...io ho fatto la stessa cosa e non mi funziona!!!
Ho preparato il web.config nello stesso modo, ma nulla...
ely_bise wrote:
Quale potrebbe essere il problema?

che stai cercando di istanziare una classe astratta e questo non è palesemente possibile.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
26 messaggi dal 30 settembre 2006
Ciao a tutti di nuovo! Lo so che alla fine di questa discussione mi odierete...o forse è già così!
Comunque ho tralasciato momentaneamente il problema originario, senza passare i parametri, per semplificare e capire meglio la logica, passando solo da una pagina all'altra e mi funziona!!!
Mettendo però un percorso di routing di questo tipo, bikes/sales.aspx, altrimenti da debug in locale non mi va. [Peccato]
Ora provo di nuovo con i parametri e poi vi dico!
Grazie intanto...

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.