Esecuzione strana di OnBeginRequest

martedì 26 febbraio 2008 - 16.50

francogozzi Profilo | Newbie

Per gestire l'url rewriting ho inserito nel metodo OnBeginRequest il codice che mi gestice la riscrittura delle url. In pratica data una richiesta, trova il percorso assoluto: se il file esite allora non riscrive niente altrimenti in base a qualche criterio riscrive l'url.

Il tutto funziona sulla macchina di sviluppo (VS 2005 e XP pro). Quando pubblico sul server in produzione si verifica un problema. Mi carica la prima pagina ma da lì in poi ottengo solo "404:file not found" Ho pensato che non passasse dal metodo OnBeginRequest... Verificando invece ci passa ma "in modo strano".

Per capire meglio ho fatto in modo che ad ogni chiamata del metodo questo mi andasse a scrivere in un file di log:

Nel caso della macchina dev ottengo questo:

C:\Inetpub\wwwroot\SDE2008\content.aspx - 26/02/2008 17.11
C:\Inetpub\wwwroot\SDE2008\stile.css - 26/02/2008 17.11
C:\Inetpub\wwwroot\SDE2008\img\righe.jpg - 26/02/2008 17.11
C:\Inetpub\wwwroot\SDE2008\img\sx.jpg - 26/02/2008 17.11
C:\Inetpub\wwwroot\SDE2008\img\logo.jpg - 26/02/2008 17.11
C:\Inetpub\wwwroot\SDE2008\img\news.jpg - 26/02/2008 17.11
...

In pratica chiama il metodo per la pagina aspx e per tutti i file in essa contenuti (immagini,css...)

Sulla macchina server questo invece non accade e trovo solo la prima riga. Ovviamente senza che mi vengano restituiti errori di nessun tipo.

Ho come l'impressione che il metodo venga chiamato una sola volta...

Qualche idea?


Grazie


Fransis

pozzoli.samuele Profilo | Senior Member

Prova a leggiucchiare questo articolo (sarebbe meglio averlo in inglese, per come è tradutto, ma... http://support.microsoft.com/kb/327852

Abilita il tracxe e facci sapere come si comporta...

pozzoli.samuele Profilo | Senior Member

Wow!

Ho trovato una guida migliore...

http://it.gotdotnet.com/quickstart/aspplus/doc/tracelogpage.aspx

francogozzi Profilo | Newbie

Ti ringrazio per la risposta ma nel mio caso sono riuscito a risolvere il problema.

In sostanza IIS non è mappato per far passare ogni file dal framework. Quindi quando io clicco su un link verso una risorsa .html la richiesta non passa dal global.asax e quindi non viene gestita.
Sul web server di VS2005 invece esiste una mappatura di tipo *.* che fa passare tutto dal framework. Quindi aggiungendo le mappature necessarie ogni richiesta viene intercettata dal metodo BeginRequest.

Grazie lo stesso
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5