none
Erro de NullReference Exception RRS feed

  • Pergunta

  • Olá pessoal,

    estou criando um método que simplesmente gera um arquivo de log de erros e coloca-os em uma pasta no servidor. Acontece que está dando um erro. A dúvida é que estou referenciando um caminho no servidor dentro de uma aplicação class library. Será esse o problema?

    Eis o código:

     public static  void GerarArquivoDeLog(Exception ex)
            {
                //Deverá gravar um arquivo de log de todos os erros do sistema
                HttpServerUtility Server = HttpContext.Current.Server;//O erro acontece aqui...            
                string path = Server.MapPath("~/RelatoriosComerciais.ApresentacaoWeb/temp/");          
                string fileName = "logDeErro" + "_" + DateTime.Now.ToString();
                File.Create(path + fileName);
                StringBuilder sb = new StringBuilder();
                sb.Append("Data/Hora do Erro: " + DateTime.Now.ToString());
                //sb.Append("Detalhes do Erro: ");
                sb.Append("Mensagem de erro: " + ex.Message.ToString());
                StreamWriter sw = new StreamWriter(path + fileName);
                sw.WriteLine(sb.ToString());
                sw.Close();
            }

    quinta-feira, 7 de fevereiro de 2013 11:56

Respostas

Todas as Respostas

  • Sim , provavelmente é esse o problema , você

    terá que mudar o endereço físico , você pode pegar o

    endereço físico da seguinte maneira :

    Request.PhysicalApplicationPath:  - > endereço físico do servidor  = EXEMPLO : D:\Inetpub\wwwroot\site\

    dá para pegar o endereço final da string Path e manipular , por exemplo , sua biblioteca tem que estar em

    \site\Biblioteca , e o endereço a ser manipulado fica em \site\  , você pode simplesmente pegar a string Path

    e usar o metodo .Replace para remover a parte que não lhe interessa...

    Abraço


    Se for útil marcar como resposta Para que outros Aproveitem

    • Sugerido como Resposta Jones Roberto quinta-feira, 7 de fevereiro de 2013 20:45
    quinta-feira, 7 de fevereiro de 2013 17:51
  • Existem algumas alternativas ao Server.MapPath, como:

    Maper um caminho virtual para um caminho físico no servidor

    System.Web.Hosting.HostingEnvironment.MapPath("/");
    Obter o caminho de unidade física de diretório de aplicativo.
    HttpRuntime.AppDomainAppPath;
    Obtém o diretório base, o resolvedor de assembly...
    AppDomain.CurrentDomain.BaseDirectory;

    Mais detalhes:

    http://cbsa.com.br/post/alternativas-ao-servermappath---c.aspx

    sexta-feira, 8 de fevereiro de 2013 02:13
  • coloca um try catch e pega o stack completo da exception

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    sexta-feira, 8 de fevereiro de 2013 12:36
    Moderador