如何使用Vista和IIS7使用ASP.Net复制文件?

时间:2008-12-16 04:36:32

标签: asp.net iis-7 windows-vista web

我在网站上有一个按钮,用于创建目录并复制文件。我使用Visual Studio 2008,ASP.Net 3.5开发它。我正在运行Vista作为我的操作系统。该网站使用了标识模仿。

在以下情况下,该功能无效(“访问路径XYZ被拒绝”):

  • 我通过IE浏览本地网络服务器来运行网站

当[注意Visual Studio以管理员权限运行]时,该功能正常工作:

  • 我在Visual Studio中玩了
  • 我在Visual Studio的浏览器中说视图
  • 我通过IE浏览本地网络服务器来运行网站,但是使用管理员权限启动IE
  • 我将网站部署到另一个网络服务器(也是vista / IIS7)
  • 我修改FireFox以接受集成身份验证,然后通过FireFox和localhost
  • 进行访问

之前我从未见过这种行为,以前的File.Copy类型命令只关心被复制到的文件夹的权限是有效的等等...(我试图调试这种情况时,Everyone完全控制)。该问题似乎是否具有管理员权限?或者登录到正在运行的计算机上?

这里发生了什么?为什么它在开发环境中工作并部署到另一台机器上,但在我自己的机器上部署时却无法工作?看起来很奇怪,任何帮助都会受到赞赏。

编辑:我已将“Everyone”添加到所有relvant目录并为该用户提供完全控制权,因此不存在任何权限问题?

4 个答案:

答案 0 :(得分:2)

IIS正在运行模拟线程的用户更有可能无法访问原始文件或目标。您是否尝试过直接以该用户身份进行复制?当您以管理员身份运行IE或以管理员身份运行VS时,模拟用户具有管理员的完全权限。

[编辑 - 添加链接]

在类似的帖子上有一些信息,使用SysInternals的想法很好:

UnauthorizedAccessException with IIS7

答案 1 :(得分:2)

您应该尝试授予修改asp.net

的权限

你可以通过google(ing)找到几篇关于它的文章。

答案 2 :(得分:2)

好的,鉴于这些症状,我已经找到了解决这个问题的方法。我不是100%确定为什么这样做(特别是因为它在FireFox中工作正常,如果你不在本地连接,在IE中工作正常),但以下似乎是一个解决方法。

在IE中选择工具 - >互联网选项 - >安全 - >可信站点 - >网站并将http://localhost添加为可信站点。然后,您可以在本地使用该网站。为什么你需要在本地连接时在IE中进行此操作而不是在FireFox或IE中连接到另一台机器时我不知道。但它似乎确实是一种可行的解决方法。

答案 3 :(得分:0)

我的猜测是ASP.Net在没有权限的情况下运行的身份(NetworkService)或用于匿名身份验证的用户是否拥有权限(IUSR)