2011-07-01 46 views
2

\我最近搬到到Windows 7。現在我的.NET應用程序無法寫入日誌文件到C:\UnauthorizedAccessException寫文本文件到C時:在Windows 7

我的TraceListener被拋出異常。

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

怎麼辦?我從工作室運行應用程序,所以我認爲它必須繼承我所有的權利,我是我的電腦上的管理員。

回答

3

如果您啓用了UAC,即使您是管理員,也不能將文件寫入C:\,除非您以提升模式啓動程序以激活管理員權限。

文件不應該放在C:的根目錄下,所以最好的做法是創建一個子目錄併爲您自己授予(對您的帳戶而不是管理員組)的訪問權限。如果您真的想要C:\上的文件,而不是將其升級爲高級,則可以使用Windows資源管理器授予您自己(您的帳戶,而不是管理員組)寫入對C:\的訪問權限。

+0

什麼是UAC?請解釋 –

+1

UAC通過禁用您的管理權限工作,直到您激活它們。這是防止惡意程序修改敏感系統文件的安全措施。 Windows 7的默認設置是啓用它。更多細節:http://en.wikipedia.org/wiki/User_Account_Control –

+0

如果你不知道什麼是UAC,也許你應該多學習一些編程知識。 – alexandrudicu

0

您可能已經開啓了UAC。

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

默認生成的app.config具有該信息。

+0

哦,配置中的選項在哪裏? –

+0

不在app.config中,而是在您的清單中。然而,運行應用程序提升,所以你可以登錄C的根本是過度殺傷 –

2

您的程序將需要運行所需的權限。只有具有管理員訪問權限的用戶才能寫入「特殊」文件夾,例如系統驅動器,因此應用程序需要使用提升的權限初始執行。

請參閱herehere瞭解有關代碼中安全權限的信息。

+0

通過運行提升修復這是錯誤的方法。在其他地方記錄是更好的解決方案。 –

相關問題