我有一个C#应用程序,它只是从服务器读取数据并将它们转换为txt文件。代码最初来自VB 2005或VB 2008(继承自我之前辞职的同事)因此,我将所有代码导入vb 2010.当我调试时,代码运行完全正常。每当我作为exe文件或独立发布时,我遇到“访问路径[C:\ blah blah blah.txt]被拒绝”。没有其他更改,我试图更改文件夹权限并将其设置为所有者和最大对用户的权利。
我的服务器是Windows Server 2008 R2
编辑:我不使用IIS,因为它不是一个Web服务器,它只是一个持有我的数据库的普通服务器。编辑2:我只能在没有错误的情况下运行它,如果我“以管理员身份运行”,而我的用户没有管理员权限
答案 0 :(得分:1)
转到exe文件的属性并选中“以管理员身份运行”检查。
答案 1 :(得分:1)
原因可能是因为你的应用程序是一个Click Once应用程序,当它在用户上下文下运行时需要提升,因此如果你没有权限访问C:\ blah blah并进行更改,你将会也无法使用您的申请。
我给你的推荐?
我个人会将文本文件写入用户文档文件夹或与用户配置文件关联的任何内容,这样您的点击一次应用程序永远不需要升级,因为它现在在具有一些严重限制的托管环境中运行。 / p>
希望这会让事情稍微清楚一点。
答案 2 :(得分:0)
不要写入系统驱动器的根目录...这是问题(较新的操作系统具有设置权限以防止任意应用程序污染系统根目录)。
答案 3 :(得分:0)
右键单击包含文件的文件夹,选择“Properies”。转到安全选项卡。单击“编辑权限”...单击“添加”。系统提示您输入用户名时,请输入Everyone
。根据需要设置权限(至少读取,可能创建/更改)。
现在尝试以非管理员身份运行可执行文件
您可以使用您希望能够使用应用程序或其所在的任何Windows saecurity组的特定用户的用户名,而不是Everyone
。