我有一个C#应用程序,我需要在操作过程中转储一些输出到日志文件.我想给用户在哪里找到日志文件的选项,而是由客户端请求它需要默认为当前应用程序的位置,这通常是/ Program Files文件/.
当我部署我一个的Win7/Vista计算机上的应用程序,但是,应用程序不会,除非我运行程序作为管理员写入日志文件.与此同时,它似乎是默默处理它不能写入文件,因为我目前正在处理所有异常在文件创建和写作过程中被抛出的情况.
我目前正在尝试检测两者的写入权限不足:
A)通过调用 "Directory.GetAccessControl()" 创建DirectorySecurity对象,
B)使用"SecurityManager.IsGranted(permissions)"方法检查安全权限,
但是当我期望它时,A不会抛出异常,并且B每次都返回true.
我见过很多与此主题相关的帖子,但它们都提供了只写入Application.UserAppDataFolder或其中一些变体的解决方案.我的客户端特别要求默认使用当前的应用程序路径,因此在编写日志文件时,我需要至少找到一种方法来优雅地警告它们.
注意:我当前的代码可以在Windows XP上找到(因为我没有UAC,所以).基本上我需要知道的是为什么我的所有调用都告诉我写文件正常,当文件永远不会创建,除非我作为管理员运行.
谢谢!