我有一个奇怪的问题。我正在用 C#(.Net 4 客户端配置文件)编写一个应用程序,它将更改 HOSTS 文件中的条目。我为我的 HOSTS 文件的用户帐户添加了“完全访问权限”,我可以在普通文本编辑器中编辑该文件而不会出现任何问题。
当在Visual Studio 2010调试器中运行时,该应用程序工作(选择“启用Visual Studio托管过程”时)。
当我在 Visual Studio 之外运行应用程序时,即使“以管理员身份运行”(!!!)我在尝试编写 HOSTS 文件时也会出现 UnauthorizedAccessException。为什么?详细信息没有给我任何线索:
System.UnauthorizedAccessException was caught
Message=Der Zugriff auf den Pfad "C:\Windows\System32\drivers\etc\hosts" wurde verweigert.
Source=mscorlib
StackTrace:
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy, Boolean useLongPath)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy)
bei System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding, Int32 bufferSize)
bei System.IO.StreamWriter..ctor(String path, Boolean append, Encoding encoding)
bei System.IO.File.WriteAllLines(String path, String[] contents)
bei App.HostsFile.Save() in HostsFile.cs:Zeile 125.
bei App.Actions.SaveHosts.Execute(Context ctxt) in Actions\SaveHosts.cs:Zeile 16.
InnerException:
(there is none)
我还没有写清单文件。我正在使用默认清单选项进行编译。那么问题是什么?我能做什么?
谢谢你。