2016-09-13 6 views
0

これは私がアプリケーションの例外を記録するために使用している私の方法です。 Visual Studioでは動作しませんが、IISではうまく動作します。 "PresentMonth"と "Filename"の形式を変更すると、VSでは動作しますが、IISでは動作しません。私は何が間違っているのか分からない。例外を記録することができません

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

そのを。あなたが書き込もうとしている場所の権限の問題。 – BugFinder

+0

@BugFinder以前は 'C'ドライブで作成しましたが、今は 'E'ドライブに変更しました。しかし、私の疑問は、私はCドライブでファイルを持っているとき、私はフォーマットを変更するとIISで動作しますが、VSで動作しません。 –

+0

なぜなら、あなたが実行しているVSでは、IISで何か他のものが実行されているからです。あなたは許可を与えることができるはずです。 – BugFinder

答えて

0

ファイルが存在しない場合はこれが私のために働いたSreamWriterがファイルでないファイルが入っているディレクトリを作成し、ディレクトリが存在しないmatbe、最初のディレクトリを作成します。そう

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

StreamWriterの文字列コンストラクタが存在しない場合、ファイルを作成します。 –

+0

@Timon Postファイルが宛先に存在します。 –

関連する問題