Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Pagina errori personalizzati ERRORE 500

    Cari amici, prima che uccida il gestore di un sito chiedo aiuto a voi:
    Lavoro normalmente con asp e per la maggior parte delle volte su server X.
    Sono abituato che se c'è un errore nella pagina mi restituisce il classico dettaglio con l'errore di riga.

    Sto lavorando ad un sito che sta su un hosting diverso, sempre windows.
    Carico ben bene il mio sito vado su una pagina e mi tira fuori l'errore generico 500 di asp.net.
    Scrivo chiedendo di abilitare il debug.... mi dicono che non si fa più, che uso una tecnologia vecchia, bla bla bla.... che insomma devo mettere mano al web.config...

    Questa la loro risposta all'enesima richiesta:

    Buon giorno, con la presente confermo che a livello di server per il sito www.xxx.it sono abilitate le informazioni di debug per le applicazioni ASP, sia in locale che in remoto. Tuttavia, quando viene impostata ad On nel web.config la gestione dei customErrors, tali informazioni non saranno visibili all’utente: devono essere impostati ad Off per poter consentire all’utente di avere la possibilità di visualizzarle (http://msdn.microsoft.com/it-it/libr...=vs.80%29.aspx), e la cosa, in teoria, dovrebbe valere solo nel caso di applicazioni ASP.NET e non ASP classico. Suggerirei pertanto, trattandosi di IIS 7, di configurare nel web.config anche la sezione httpErrors della sezione system.webServer, e di verificare che configurando in tal senso gli errori vengano mostrati nel browser.
    Allora ho riscritto così il web.config:
    codice:
    <customErrors mode="off"/>
    .....
      <system.webServer>
        <httpErrors>
          <remove statusCode="401" />
          <remove statusCode="403" />
          <remove statusCode="404" />
          <remove statusCode="500" />
          <error statusCode="401" path="/401.aspx" responseMode="Redirect" />
          <error statusCode="403" path="/403.aspx" responseMode="ExecuteURL" />
          <error statusCode="404" path="/404.aspx" responseMode="ExecuteURL" />
          <error statusCode="500" path="/500.aspx" responseMode="ExecuteURL" />
        </httpErrors>
      </system.webServer>
    Bene e per la pagina 500.aspx (che è l'unica che mi interessa) avevo trovato questo codice:

    codice:
    <script language=C# runat="server">
    void Page_Load(object sender, System.EventArgs e)
    {
    	throw(new ArgumentNullException());
    }
    
    public void Page_Error(object sender,EventArgs e)
    {
    	Exception objErr = Server.GetLastError().GetBaseException();
    	string err =	"Error Caught in Page_Error event<hr>
    " + 
    			"
    Error in: " + Request.Url.ToString() +
    			"
    Error Message: " + objErr.Message.ToString()+
    			"
    Stack Trace:
    " + 
    	                  objErr.StackTrace.ToString();
    	Response.Write(err.ToString());
    	Server.ClearError();
    }
    </script>
    Carino....se non fosse che non mi da il dettaglio dell'errore come le classiche pagine che ho sempre visto! Ma una cosa del genere:
    codice:
    Error Caught in Page_Error event
    
    
    Error in: http://www.xxy.it/500.aspx?500;http:.../pdf/prova.asp
    Error Message: Value cannot be null.
    Stack Trace:
    at ASP._500_aspx.Page_Load(Object sender, EventArgs e) in c:\siti\www.xxy.it\500.aspx:line 4 at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) at System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) at System.Web.UI.Control.OnLoad(EventArgs e) at System.Web.UI.Control.LoadRecursive() at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
    Ho provato a creare falsi errori e sempre su line 4 mi da errore!!!!!!!!!!! ma a line 4 c'è il title o head!!!!!!

    Dove sbaglio?
    Avete uno script per una pagina di errori dettagliati?
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  2. #2
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    non ho capito, non puoi semplicemente lasciare

    codice:
    <configuration>
        <system.web>
            <customErrors mode="Off"/>  ("Off" con la O maiuscola)
        </system.web>
    </configuration>
    e basta ?

    Comunque ovviamente avendoglielo detto tu di lanciare l'eccezione...

    codice:
    throw(new ArgumentNullException());
    lui la lancia

    ( PS: il nome del sito lo hai oscurato nella prima parte ma poi c'e' nell'errore )

  3. #3

    allora

    allora se lascio solo

    codice:
    <configuration>
        <system.web>
            <customErrors mode="Off"/>
        </system.web>
    </configuration>
    La pagina con qualsiasi errore mi restituisce:

    500 - Internal server error.
    There is a problem with the resource you are looking for, and it cannot be displayed.

    Ho provato a togliere dalla pagina 500.aspx la parte che mi dicevi:

    throw(new ArgumentNullException());

    Ma cosi mi rimane una pagina bianca e basta!
    Digital XP - The new expression of digital art! - http://www.mimanchitu.it

  4. #4
    Moderatore di ASP.net L'avatar di djciko
    Registrato dal
    Nov 2002
    Messaggi
    6,887
    prova a mettere il codice per l'errore dettagliato nel Global.asax nell'evento Application_Error:


    codice:
    Exception err = Server.GetLastError();
    Response.Clear();
    Response.Write("<h1>" + err.InnerException.Message + "</h1>");
    Response.Write("<pre>" + err.ToString + "</pre>");
    Server.ClearError();
    ed a puntare, nelle pagine degli statuscode, a risorse .htm e non .aspx.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.