Array
(
)

Erro no glbal.asa.cs .Net C#

Fabio Colli
   - 04 mar 2010

Pessoal, eu fiz a rotina abaixo para recuperar um erro e depois mostrar para o usuário um página de erro que não seja a página amarela padão do .Net. Minha pergunta é: Isso é gambiarra? Tem formas melhores de implentar isso?               sCaminhoErro = Server.MapPath(".") + @"\App_Data\LOG_ERROS.xml";
            String sUrlOrigem = Request.Path.ToString().Replace("/","");             LogErroSistema oLog = new LogErroSistema();             Exception Ex = Server.GetLastError().InnerException;
           
            oLog.DDataErro = DateTime.Now;
            oLog.SErro = Ex.Message.ToString().Replace("\n", "--");
            oLog.SIP = Request.UserHostAddress;
            oLog.STrace = Server.GetLastError().StackTrace.ToString();
            oLog.SUrl = Request.Url.ToString();             oLog.SalvarLog(sCaminhoErro);             Email Email = new Email();
            Email.EmailOrigem = ConfigurationManager.AppSettings["EmailOrigem"].ToString();
            Email.EmailDestino = ConfigurationManager.AppSettings["EmailOrigem"].ToString();
            Email.Host = ConfigurationManager.AppSettings["Host"].ToString();
            Email.Assunto = "Erro na demonstração";
            Email.EnviarEmailErro(oLog.SErro);
           
            Response.Redirect("MostraErro.aspx?Erro=" + oLog.SErro + "&Url=" + sUrlOrigem);   Reparem que nessa linha( oLog.SErro = Ex.Message.ToString().Replace("\n", "--");
 ) eu faço um replace para retirar a quebra de linha, pois na querystring não é aceito quebras. Na página MostraErro.aspx eu faço o replace inverso. A desvantagem disso é que se tiver "--" na mensgem de erro, vai quebrar a linha.   Obrigado!!!

Marcio
   - 05 mar 2010

Adicione a seguinte linha no seu web.config e assim sempre que der um erro não tratado o sistema irá chamar a página de erro indicada.

<customErrors mode="On" defaultRedirect="ERRO.aspx"/>

0
|
0