2012-03-15 51 views
0

我有一个ASP.Net网站和一个C#控制台应用程序(均在VS2010中开发)。都将文件上传到我们的Web服务器(Windows Server 2003/IIS 6.0)。登录到网站的用户可以查看和下载这些文件。 这在网站上正常工作。但是,当我尝试下载通过控制台应用程序上传的文件,我得到的错误:访问路径'C: xxx yyy zzz abcd_20120309.pdf'被拒绝

 UnauthorizedAccessException 
     Access to the path 'C:\xxx\yyy\zzz\abcd_20120309.pdf' is denied. 

我已经手动提供“完全控制”,以网络服务帐户在该文件夹。

为什么Asp.Net代码无法访问由控制台应用程序创建的文件夹?

有什么想法? 谢谢!

+0

我不认为网络服务帐户是由asp使用的。有一位用户以IUSR_开头......但我不知道完全依赖于配置的风险 – mslliviu 2012-03-15 07:24:51

+0

@mslliviu,但如果ASP.NET使用默认的ASP.NET帐户,确实可能会出现问题 – 2012-03-15 07:28:15

+0

Hi Marc, ASP.Net使用默认帐户,因为我没有在配置文件中添加模拟标签。由于我的网站在IIS 6.0上运行,我相信默认用户是NETWORK SERVICE。如果我错了,请纠正我。 – KhD 2012-03-15 07:36:12

回答

0

不知道它在这种情况下,重要的,但有一件事我过去看到的是:

应用程序首先保存在临时文件夹中的文件,然后将其移动到目标文件夹。

有时候,不知道确切的规则,文件访问权在移动中的文件之后。即该文件即使在目标文件夹中也以临时文件夹的访问权结束。

检查文件的访问权限,看它是否与目标文件夹不同。

1

您需要提供对IIS_IUSRS文件夹的访问权限(或沿此行的内容)。

你也需要访问IIS。

包括访问所有人,不包括此用户。所以它必须直接完成。

网络服务是不够的。

如果IIS_IUSRS不出现在列表中,请搜索它。