2016-09-13 3 views
0

Dies ist meine Methode, die ich verwende, um die Ausnahmen einer Anwendung zu protokollieren. Es funktioniert nicht in Visual Studio, funktioniert aber gut in IIS. Wenn ich die Formate "PresentMonth" und "Filename" ändere, funktioniert es in VS, aber nicht in IIS. Ich weiss nicht, was falsch ist.Kann Ausnahmen nicht protokollieren

public static void WriteLog(string sExceptionName) 
    { 
     try 
     { 
      StreamWriter log; 
      //String Filepath = "C:\\Quasar_Logs\\"; 
      String Filepath = ConfigurationManager.AppSettings["FilePath"].ToString(); 
      String PresentMonth = DateTime.Now.ToString("-MMM-yy"); 
      String Filename = "Quasar_Log"+ PresentMonth +".txt"; 
      if (!File.Exists(Filepath + Filename)) 
      { 
       log = new StreamWriter(Filepath + Filename); 
      } 
      else 
      { 
       log = File.AppendText(Filepath + Filename); 
      } 

      log.WriteLine("Data Time:" + DateTime.Now +"\n\n"); 
      //log.WriteLine("Exception Name:" + sExceptionName); 
      log.WriteLine(sExceptionName);    
      //log.WriteLine("Error Line No.:" + nErrorLineNo); 
      log.Close(); 
     } 
     catch (Exception ex) 
     { 
      HttpContext.Current.Response.Redirect("../Access/UnabletoLog.htm"); 
      WriteLog("Line Number: " + ex.ToString());    
     } 
    } 
+0

Sein wahrscheinliches Ein Berechtigungsproblem in dem Sie versuchen zu schreiben. – BugFinder

+0

@BugFinder Früher habe ich in 'C' Laufwerk erstellt und jetzt habe ich es in 'E' Laufwerk geändert, es hat funktioniert. Aber mein Zweifel ist, wenn ich die Datei in Laufwerk C habe, funktionierte es in IIS aber nicht in VS und umgekehrt, wenn ich die Formate ändere. –

+0

weil in VS es als Sie läuft, in IIS läuft es auf etwas anderes Id rate .. Sie sollten in der Lage sein, Berechtigungen zu erteilen – BugFinder

Antwort

0

Erstellen Sie das Verzeichnis zuerst, wenn die Datei nicht existiert, matbe das Verzeichnis existiert nicht, SreamWriter die Datei erstellt ein nicht das Verzeichnis, in dem sich die Datei im Dieses ist für mich gearbeitet.

 if (!File.Exists(FilePath + FileName)) 
     { 
      Directory.CreateDirectory(FilePath); 
      log = new StreamWriter(FilePath + FileName); 
     } 
     else 
     { 
      log = File.AppendText(FilePath + FileName); 
     } 
+0

Der String-Konstruktor von StreamWriter erstellt die Datei, wenn sie nicht existiert ... –

+0

@Timon Post Die Datei existiert im Ziel. –

Verwandte Themen