2016-02-05 7 views
2

для моего школьного проекта Я попытался связаться с моей малиной с помощью Windows iot для ПК через TCP-сокеты. Все работает нормально, но я хочу регистрировать трафик, а также осознавать, что что-то пошло не так.Windows IoT - протоколирование в C#

Так я запрограммировал эту LogFilewriter:

public static void write(string message) 
    {   

      using (StreamWriter w = File.AppendText("\\" + "log.txt")) 
      { 
       logging(message, w); 
      } 

    } 
    public static void logging(string logMessage, TextWriter w) 
    { 
     w.Write("\r\nLog Entry : "); 
     w.WriteLine("{0} {1}", DateTime.Now.TimeOfDay, DateTime.Now.Date); 
     w.WriteLine(" :"); 
     w.WriteLine(" :{0}", logMessage); 
     w.WriteLine("-------------------------------"); 
    } 

Проблема заключается в том, что если я называю Log.write (сообщение) - (Log класс) он выдает следующее исключение:

BLOCKQUOTE Исключение выбрано: «System.UnauthorizedAccessException» в System.IO.FileSystem.dll

Есть ли у кого-то идея, почему это исключение n бросается?

+0

TextWriter используется в других частях класса ? Почему вы не используете существующий журнал? – Tinwor

+0

Я должен разбить его, потому что это для коммерческого использования позже - пользователь должен уметь читать конкретный журнал. Однако я попытался перейти на этот путь, потому что думал об этом без защиты .... но это не так: 'using (StreamWriter w = File.AppendText (" c $ \\ Users \\ Public \\ log.txt ")) { регистрация (сообщение, w); } ' –

+0

Где (по какому пути) выполняется ваш« logging »exe? –

ответ

0

Разве это не то же самое, как обычные окна? Вы не можете записать в ту же папку, что и EXE, потому что разрешения не позволяют ее. Либо это, либо потому, что приложение изолировано.

Я думаю, это объясняет это?

https://social.msdn.microsoft.com/Forums/en-US/67e9d61c-ccb6-47e4-8c7a-968166701920/c-write-to-file-on-windows-10-iot?forum=WindowsIoT

Он говорит, что это,

Я думаю, что вы должны работать с StorageFile и StorageFolder для UWP приложений. Мы использовали их и до сих пор не имели никаких проблем. Когда я пытался работать с классом File в первом выпуске, он вообще не был доступен.

Возможно, это изменилось сейчас. Попробуйте сохранить файл в вашем файле в папке «C: \ Users \ USERNAME \ AppData \ Local \ Packages \ YOURPACKAGE». Приложение должно иметь доступ к нему, и, возможно, вы можете использовать класс File.

Прочитайте все это потому, что он также упоминает о том, что файл НЛ песочницу, и предоставляет эту ссылку, чтобы предложить, как записать в файл,

http://grogansoft.com/blog/?p=554

0

StreamWriter с истинным, будет добавлять содержимое в файл

using (StreamWriter w = new StreamWriter("\\" + "log.txt", true)) 
      {logging(message, w);} 
+0

Я пробовал, но это не сработает - невозможно преобразовать String в IOStream. –

+0

hmm, leme попробуйте еще раз - это было псевдо. Запустит мой IoT, когда я доберусь до моей мастерской. – WindyHen

+0

Спасибо - я не могу получить эту работу .... всегда это исключение несанкционированного доступа .... –

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

  • Нет связанных вопросов^_^