Cómo almacenar archivos en el servidor ASP.net
-
12-09-2019 - |
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
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