2013-08-19 2 views
0

Это может быть немного смешно, но мне грозит какая-то глупая проблема.File.Create не работает в asp.net

Я использую

File.Create(ConfigurationManager.AppSettings("LogFilePath1")).Dispose()

и

Using writer As StreamWriter = File.AppendText(context.Current.Server.MapPath(ConfigurationManager.AppSettings("LogFilePath1"))) 

, когда я с помощью этой ошибки дано мне «не удалось найти часть пути»

Если я сохраняю путь в строке, тогда его рабочий штраф еще создает ошибку.

Для справки я копирую фрагмент кода функции.

Пожалуйста, помогите

Благодарности

Public Shared Function LogErrorToLogFile(ByVal ee As Exception, ByVal userFriendlyError As String) As String 
     Try 
       Dim path As String = context.Current.Server.MapPath(ConfigurationManager.AppSettings("LogFilePath1")) 
      ' check if directory exists 
      If Not Directory.Exists(path) Then 
       'Directory.CreateDirectory(path) 
       Directory.CreateDirectory(context.Current.Server.MapPath(ConfigurationManager.AppSettings("LogFilePath1"))) 
      End If 
      path = path & DateTime.Today.ToString("dd-MMM-yy") & ".log" 
      ' check if file exist 
      If Not File.Exists(path) Then 
       File.Create(path).Dispose() 
       'File.Create(context.Current.Server.MapPath(ConfigurationManager.AppSettings("LogFilePath1"))).Dispose() 
       File.Create(ConfigurationManager.AppSettings("LogFilePath1")).Dispose() 
      End If 
      ' log the error now 
      Using writer As StreamWriter = File.AppendText(path) 
       'Using writer As StreamWriter = File.AppendText(context.Current.Server.MapPath(ConfigurationManager.AppSettings("LogFilePath1"))) 
       writer.WriteLine(HttpUtility.HtmlEncode(vbCr & vbLf & "Log written at : " & DateTime.Now.ToString() & vbCr & vbLf & "Error occured on page : " & context.Current.Request.Url.ToString() & vbCr & vbLf & vbCr & vbLf & "Here is the actual error :" & vbLf & ee.ToString())) 
       writer.WriteLine("==========================================") 
       writer.Flush() 
       writer.Close() 
      End Using 
      Return userFriendlyError 
     Catch 
      Throw 
     End Try 
    End Function 
+0

Каково значение LogFilePath1 в вашем файле конфигурации? – Riv

ответ

1

Если вы измените текущие строки с комментарием-outed строк в вашей функции фрагмента кода, вы логика меняется, потому что, когда вы используете путь, есть добавлено имя файла [dd-MMM-yy] .log в строку пути. но вы не используете это дополнение при прямом использовании ConfigurationManager.AppSettings («LogFilePath1»)!

0

Я предполагаю, что вы не использовали путь к папке со слэшем (например: @ "C: \ FolderName \"), и именно по этой причине вы получаете ошибку.

Смежные вопросы