我在网站上有一个按钮,用于创建目录并复制文件。我使用Visual Studio 2008,ASP.Net 3.5开发它。我正在运行Vista作为我的操作系统。该网站使用了标识模仿。
在以下情况下,该功能无效(“访问路径XYZ被拒绝”):
当[注意Visual Studio以管理员权限运行]时,该功能正常工作:
之前我从未见过这种行为,以前的File.Copy类型命令只关心被复制到的文件夹的权限是有效的等等...(我试图调试这种情况时,Everyone完全控制)。该问题似乎是否具有管理员权限?或者登录到正在运行的计算机上?
这里发生了什么?为什么它在开发环境中工作并部署到另一台机器上,但在我自己的机器上部署时却无法工作?看起来很奇怪,任何帮助都会受到赞赏。
编辑:我已将“Everyone”添加到所有relvant目录并为该用户提供完全控制权,因此不存在任何权限问题?
答案 0 :(得分:2)
IIS正在运行模拟线程的用户更有可能无法访问原始文件或目标。您是否尝试过直接以该用户身份进行复制?当您以管理员身份运行IE或以管理员身份运行VS时,模拟用户具有管理员的完全权限。
[编辑 - 添加链接]
在类似的帖子上有一些信息,使用SysInternals的想法很好:
答案 1 :(得分:2)
您应该尝试授予修改asp.net
的权限你可以通过google(ing)找到几篇关于它的文章。
答案 2 :(得分:2)
好的,鉴于这些症状,我已经找到了解决这个问题的方法。我不是100%确定为什么这样做(特别是因为它在FireFox中工作正常,如果你不在本地连接,在IE中工作正常),但以下似乎是一个解决方法。
在IE中选择工具 - >互联网选项 - >安全 - >可信站点 - >网站并将http://localhost添加为可信站点。然后,您可以在本地使用该网站。为什么你需要在本地连接时在IE中进行此操作而不是在FireFox或IE中连接到另一台机器时我不知道。但它似乎确实是一种可行的解决方法。
答案 3 :(得分:0)
我的猜测是ASP.Net在没有权限的情况下运行的身份(NetworkService)或用于匿名身份验证的用户是否拥有权限(IUSR)