-1

我有一个 C# 应用程序,它只是从服务器读取数据并将它们转换为 txt 文件。这些代码最初来自VB 2005或VB 2008(继承自我以前辞职的同事)因此,我将所有代码导入vb 2010。当我调试时,代码运行良好。每当我作为 exe 文件或独立文件发布时,我都会遇到“访问路径 [C:\blah blah blah.txt] 被拒绝”。没有其他任何更改,我尝试更改文件夹权限并将其设置为所有者和最大值用户的权利。

我的服务器是 Windows Server 2008 R2

编辑:我没有使用 IIS,因为它不是 Web 服务器,它只是一个保存我的数据库的普通服务器。

编辑2:如果我“以管理员身份运行”而我的用户没有管理员权限,我只能让它运行而不会出现错误

4

4 回答 4

1

转到exe文件的属性并检查“以管理员身份运行”检查。

于 2012-07-25T07:45:42.327 回答
1

原因可能是因为您的应用程序是 Click Once 应用程序,当它在用户上下文下运行时需要提升,因此如果您无权访问 C:\blah blah 并进行更改,您也将无法使用您的应用程序。

我对你的推荐?

我个人会将文本文件写入用户文档文件夹或与用户配置文件相关的任何内容,这样您的点击一次应用程序永远不需要提升,因为它现在在受一些严格限制的托管环境中运行。

希望这能澄清一点。

于 2012-07-25T08:45:41.967 回答
0

不要写入系统驱动器的根目录……这就是问题所在(较新的操作系统设置了权限以防止任意应用程序污染系统根目录)。

于 2012-07-25T07:46:04.853 回答
0

右键单击包含您的文件的文件夹,选择“属性”。转到安全选项卡。单击“编辑权限”...单击“添加”。当提示输入用户名时,输入Everyone。根据需要设置权限(至少读取,可能的创建/更改)。

现在尝试以非管理员身份运行可执行文件

而不是Everyone您可以使用您希望能够使用该应用程序的特定用户的用户名或他们所在的任何 Windows 安全组的用户名。

于 2012-07-25T08:13:45.260 回答