Pregunta

Ok, así que estoy tratando de tener el archivo de registro de errores para el sitio web que se ejecuta en ASP.net y C #.

He intentado almacenar para conducir con la ruta regular. Lo fundamental es porque está en código C # (código detrás de la página) que captará el servidor y almacenarlo allí. (Al final se trata de un código que se ejecuta en el servidor)

Por desgracia para mí eso no es cierto. Que se guarda en la máquina local desde la que el cliente abre el sitio.

¿Cómo se puede obligar a ser guardado en la máquina servidor?

Quiero que todos los registros de errores en un solo lugar. ¿Alguna sugerencia sobre la lectura o cómo hacer esto.

   string path = "C:\\WebSite";
   string error = "error";          
   try
    {
      // check if dir exists if it does i add file name to the path
      // i removed code to keep it simple
      path += "\\logs.txt";

      FileStream log_fs = 
              new FileStream(path, FileMode.Append, FileAccess.Write);
      StreamWriter log_sw = 
              new StreamWriter(log_fs);
      string log = String.Empty;

      // formate log string using error message

      log_sw.Write(log);
      log_sw.Close();
      log_fs.Close();
   }
   catch (Exception ex)
   {
        // here I e-mail the error in case logging failed
   }

Este código generará archivos en la máquina local, en lugar de servidor

¿Fue útil?

Solución

Puede conectarse a cualquier lugar en el servidor web (que la cuenta de usuario ASPNET tiene permiso para escribir) con código como el siguiente:

string log = String.Empty;

// format log string using error message

try
{
    using (StreamWriter logFile = new StreamWriter(@"C:\WebSite\logs.txt", true))
    {
        logFile.WriteLine(log);
    }
}
catch
{
    // here I e-mail the error in case logging failed
}

Esto escribirá el archivo al servidor web que aloja el sitio web. Ahora, si se está ejecutando el sitio web localmente durante el desarrollo y que está utilizando el servidor web VS o IIS, a continuación, por supuesto, el archivo se creará en la máquina cuando se prueba el sitio web localmente. Incorporada

Otros consejos

Para responder a la sugerencia de parte de su pregunta, ¿ha considerado el uso de ELMAH , se registrará errores a diferentes almacenes:

Microsoft SQL Server Oracle (OracleErrorLog) (Versión 3) archivo de base de datos SQLite Microsoft Access (AccessErrorLog) VistaDB (VistaDBErrorLog) archivos XML sueltos RAM (en memoria)

o enviar a través de correo electrónico, Twitter

ELMAH es muy fácil de configurar y muy eficaz

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top