66 messaggi dal 14 novembre 2005
Ciao, ho un problema che non riesco a risolvere.
E' noto che per mostrare lato client un errore che si verifica lato server durante un AsyncPostBack, si può richiamare un metodo personalizzato.
Aspx:
<AjaxToolkit:ToolkitScriptManager ID="ScriptManager1"
OnAsyncPostBackError="ScriptManager_AsyncPostBackError" runat="Server" />
Code Behind:
protected void ScriptManager_AsyncPostBackError(object sender, AsyncPostBackErrorEventArgs e)
{
ScriptManager1.AsyncPostBackErrorMessage = "Exception Message: " + e.Exception.Message ;
}

Su IIS6 ha sempre funzionato a dovere. Ora che sono passato a Windows 7 e IIS7, in caso di errore il popup mi mostra solamente il messaggio di errore classico:
"An unknown error occurred while processing the request on the server. The status code returned was 500".

Ho notato che ciò si verifica se eseguo l'applicazione web nel pool di default "DefaultAppPool" (.net 2.0, pipeline mode: Integrated), mentre se la imposto su "Classic .NET AppPool (.net 2.0, pipeline mode: classic) funziona correttamente, ovvero mi viene mostrato il messaggio di errore customizzato.
Ho provato a modificare alcune impostazioni di configurazione di IIS e ad aggiungere nel web.config:
<httpErrors errorMode="Detailed" />
ma niente da fare!

Grazie!

br
mcdev wrote:
<httpErrors errorMode="Detailed" />

devi mettere in mezzo qualcosa come firebug o fiddler per vedere che errore ti genera. tendenzialmente direi che hai gli httpmodules sotto system.web anzichè system.webServer e questo fa andare in errore tutto. però senza guarda l'errore è un po' come leggere nella palla di cristallo. .

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
66 messaggi dal 14 novembre 2005
Ciao Daniele,
Con fiddler ho potuto vedere che l'eccezione generata durante l'AsyncPostBack con modalità di IIS in "Classic Application Pool" veniva gestita con l'invio al client dell'errore customizzato e uno status 200. In modalità "DefaultAppPool" invece veniva spedita al client l'intera pagina di errore standard di IIS e uno status 500.

A questo punto mi sono focalizzato sul web.config ed ho scoperto che...... il problema era causato dalla proprietà di buffering della pagina settato a false:
<pages buffer="false">

Ora sono più tranquillo!

Ciao e grazie

br.
mcdev wrote:
Ora sono più tranquillo!

prego. fiddler è sempre tuo amico
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.