Frage

Ok, so versuche ich, Fehlerprotokolldatei für die Website läuft auf ASP.net und C # haben.

Ich habe versucht, die Speicherung mit regelmäßigem Weg zu fahren. Erwarte es, weil es in c # Code (Code hinter Seite) ist es den Server abholen und dort speichern. (Am Ende ist es ein Code, der auf dem Server ausgeführt wird)

Leider für mich das ist nicht wahr. Es wird auf dem lokalen Rechner gespeichert, von dem Client der Seite öffnet.

Wie können Sie zwingen, auf Server-Rechner gespeichert werden?

Ich möchte alle Fehlerprotokolle an einem Ort. Irgendwelche Vorschläge auf, zu lesen oder, wie dies zu tun.

   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
   }

Dieser Code wird Datei auf dem lokalen Rechner, statt Server

erzeugen
War es hilfreich?

Lösung

Sie können auf dem Webserver an einem beliebigen Ort einloggen mit Code (dass das ASPNET-Benutzerkonto Erlaubnis schreiben muss) wie folgt aus:

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
}

Dies wird die Datei auf den Web-Server schreibt die Website-Hosting. Nun, wenn Sie laufen die Website lokal während der Entwicklung und Sie verwenden entweder die integrierte in VS Webserver oder IIS, dann natürlich die Datei auf Ihrem Rechner erstellt werden, wenn die Website lokal zu testen.

Andere Tipps

Um den Vorschlag Teil Ihrer Frage zu beantworten, haben Sie mit in Betracht gezogen ELMAH , es log werden Fehler auf verschiedene Speicher:

Microsoft SQL Server Oracle (OracleErrorLog) SQLite (Version 3) Datenbankdatei Microsoft Access (AccessErrorLog) VistaDB (VistaDBErrorLog) Lockere XML-Dateien RAM (in-memory)

oder per E-Mail, Twitter

Elmah ist sehr einfach zu installieren und sehr effektiv

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top