Come conservare file sul server di ASP.net
-
12-09-2019 - |
Domanda
Ok, quindi sto cercando di avere file di log degli errori per il sito web in esecuzione su ASP.net e C #.
Ho cercato memorizzazione di guidare con percorso regolare. Aspettavo perché è in codice C # (codice dietro la pagina) che prenderà il server e conservarlo lì. (Alla fine è un codice che viene eseguito sul server)
Purtroppo per me quello non è vero. Esso viene salvato sul computer locale da cui client apre il sito.
Come si può costringerlo a essere salvato sul computer server?
Voglio che tutti i log degli errori in un unico luogo. Qualche suggerimento per la lettura o il modo di farlo.
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
}
Questo codice genererà file sul computer locale, invece di server
Soluzione
È possibile accedere in qualsiasi posizione sul web server (che l'account utente ASPNET ha permesso di scrivere) con il codice come questo:
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
}
Questo scriverà il file al server web che ospita il sito. Ora, se si sta eseguendo il sito a livello locale durante lo sviluppo e si sta utilizzando il built-in server web VS o IIS, poi, naturalmente, il file verrà creato sul computer quando si verifica il sito in locale.
Altri suggerimenti
Per rispondere alla parte suggestione della tua domanda, hai pensato di utilizzare ELMAH , è registrerà gli errori a diversi depositi:
Microsoft SQL Server Oracle (OracleErrorLog) SQLite (versione 3) file di database Microsoft Access (AccessErrorLog) VistaDB (VistaDBErrorLog) file XML allentati RAM (in memoria)
o inviare via e-mail, Twitter
ELMAH è molto facile da installare e molto efficace