Oggi mi è capitato di eseguire delle operazioni di manutenzione su di in una Web Application scritta in ASP.NET 3.5. Durante l’avvio dell’applicazione veniva sollevata una System.Web.HttpException di cui riporto lo StackTrace:
in System.Web.StaticFileHandler.GetFileInfo(String virtualPathWithPathInfo, String physicalPath, HttpResponse response)
in System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext context)
in System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext context, AsyncCallback callback, Object state)
in System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
in System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)
Con la proprietà Message impostata a : “Il file non esiste”.
Utilizzando l'evento “Application_Error” presente nel Global.asax e utilizzando il codice seguente:
1: Dim executionFilePath As String = HttpContext.Current.Request.AppRelativeCurrentExecutionFilePath
ho "scoperto” il file “incriminato”: “~/favicon.ico” (l’immagine visualizzata nella barra degli indirizzi del browser), file non presente per scelta.
Il problema sembra essere dovuto a IE9 (il browser presente sulla macchina di test) se non impostato in “Compatibility View”. Con altre versioni di IE o altri browser l’eccezione non è generata. Impostando il “Compatibility View” su IE9, tutto si risolve.
Ovviamente si tratta di una versione beta di IE9, volevo segnalarla nel caso in cui qualcuno si trovasse con lo stesso problema, o abbia avuto modo di approfondire l’argomento (magari mi è sfuggito qualcosa…)