在Windows 7上将文本文件写入C:\时出现UnauthorizedAccessException

时间:2011-07-01 11:21:54

标签: .net windows-7 file-io uac

我最近搬到了Windows 7.现在我的.NET应用程序无法将日志文件写入C:\

我的TraceListener抛出异常。

A first chance exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll

怎么办?我正在从工作室运行应用程序,所以我认为它必须继承我的所有权利,我是我的电脑上的管理员。

3 个答案:

答案 0 :(得分:3)

如果您启用了UAC,即使您是管理员,也无法将文件写入C:\,除非您以提升模式启动该程序以激活管理员权限。

文件不应该真正放在C:的根目录中,所以最好是创建一个子目录并为自己提供访问权限(对您的帐户而不是管理员组)。如果您确实希望将文件放在C:\上而不是以提升方式运行,则可以使用Windows资源管理器授予您自己(您的帐户,而不是管理员组)对C:\的写入权限。

答案 1 :(得分:2)

您的程序需要使用所需的权限运行。只有具有管理员访问权限的人才能写入“特殊”文件夹,例如系统驱动器,因此应用程序最初需要以提升的权限执行。

有关代码中安全权限的信息,请参阅herehere

答案 2 :(得分:0)

您可能仍然开启了UAC。

您需要在app.config中指明您希望该进程使用提升的权限。

默认生成的app.config具有该信息。