lunedì 22 agosto 2011

Catch error for castom page in sharepoint

Può capitare di dover castomizzare un messaggio, generato da sharepoint, in seguito a un errore particolare.



Possiamo in poche righe di codice creare delle pagine castom in modo da mostrare a video solo i messaggi che noi vogliamo:
Creiamo una classe :

code:

class ExceptionHandler : IHttpModule
    {
        string _errPage = "/_layouts/DecatecCustomErrorPage.aspx";
        public void Dispose()
        {
        }

        public void Init(HttpApplication context)
        {
            context.Error += new EventHandler(context_Error);
        }

        void context_Error(object sender, EventArgs e)
        {
            Exception[] unhandledExceptions = HttpContext.Current.AllErrors;

            foreach (Exception ex in unhandledExceptions)
            {
                //Castomizzo per catturare il survey
                if (ex.Message.Equals("You are not allowed to respond again to this survey."))
                {
                    _errPage = "/_layouts/DecatecCustomErrorPageSurvey.aspx?Error="+
                        ex.Message;
                }
            }

            HttpContext.Current.Server.ClearError();
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Server.Transfer(_errPage);
        }
    }

Nel codice uso il query string "Error" che poi uso per stampare nella pagina l'errore che mi arriva.

Dobbiamo poi caricare nel web.config i reguenti tag:

in <HttpModules> ....

 <add name="Nome Classe" type="NameSpace.NomeClasse,NameSpace
           , Version=1.0.0.0, Culture=neutral, PublicKeyToken=33b75c83e58b885b" />

Ora lavostra pagina castom è pronta a catturare gli errori.








Nessun commento:

Posta un commento