【问题标题】:Windows IoT - logging activities in C#Windows IoT - 在 C# 中记录活动
【发布时间】:2016-02-05 21:26:03
【问题描述】:

对于我的学校项目,我尝试通过 TCP 套接字从我的树莓派与 Windows iot 进行通信。一切正常,但我想记录流量并意识到是否出现问题。

所以我编写了这个 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(message) - (Log 是类)它会抛出以下异常:

块引用 抛出异常:System.IO.FileSystem.dll 中的“System.UnauthorizedAccessException”

有人知道为什么会抛出这个异常吗?

【问题讨论】:

  • TextWriter 用在类的其他部分?为什么不使用现有日志?
  • 我必须拆分它,因为这是用于稍后的商业用途 - 用户应该能够读取特定的日志。但是我试图走这条路,因为我认为这是不受保护的......但它不是:using (StreamWriter w = File.AppendText("c$\\Users\\Public\\log.txt")) { logging(message, w); }
  • 您的“日志记录” exe 在哪里(在哪个路径上)运行?
  • 在 Pi 上的 Visual Studio 的标准调试文件夹中运行。
  • 为什么写“\\log.txt”?只要写“log.txt”,日志文件就应该出现在.exe文件的同一个文件夹中?

标签: c# logging iot unauthorizedaccessexcepti


【解决方案1】:

不是和普通的windows一样吗?您不能写入与 EXE 相同的文件夹,因为权限不允许。要么是那个,要么是因为应用是沙盒的。

我认为这解释了它?

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

它是这么说的,

我认为您应该为 UWP 应用程序使用 StorageFile 和 StorageFolder。我们使用了它们,到目前为止没有任何问题。当我尝试在第一个版本中使用 File 类时,它根本不可用。

也许现在改变了。尝试将文件保存在“C:\Users\USERNAME\AppData\Local\Packages\YOURPACKAGE”中的文件中。应用程序应该可以访问那里,也许你可以使用 File 类。

阅读全文,因为它还提到文件 IO 是沙盒化的,并提供此链接以建议如何写入文件,

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

【讨论】:

    【解决方案2】:

    Streamwriter 为 true,会将内容追加到文件中

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

    【讨论】:

    • 我试过了,但它不起作用 - 无法将 String 转换为 IOStream。
    • 嗯,让我再试一次 - 这是伪的。当我到达我的车间时会启动我的物联网
    • 谢谢 - 我无法完成这项工作....总是出现未经授权的访问异常....
    猜你喜欢
    • 1970-01-01
    • 2016-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-22
    相关资源
    最近更新 更多