2011-04-18 35 views
1

我有一个ASP.NET Web应用程序,我试图打开位于我的webroot的子目录内的文本文件。使用SAFileUp通过相同的Web应用程序上传文本文件。我现在用的是FileInfo对象为这样的阅读文本文件...设置上传文件的权限以允许在ASP.NET中读取

Response.TransmitFile(fileInfo.FullName) 

令人费解的事情是,我得到当我执行这行代码抛出的异常。

Access to the path 'C:\webroot\xxxx\uploads\filename.txt' is denied 

我已经给出了uploads文件夹,其中的文本文件被上传,read/write/execute权限IUSRIIS_IUSRS兼顾和权限继承到下面的子文件夹。有趣的是,我试图加载的实际文本文档没有为IIS_IUSRS设置权限,而IUSR确实具有读/写/执行权限。只要将“读取”权限添加到IIS_IUSRS,我就可以读取该文件。

令我困惑的是我会认为文件会继承父文件夹的权限,但显然不是。如何在上传过程中设置上传文件的权限,以便稍后打开以供阅读?

+0

你检查,如果该文件是只读 – Swaff 2011-04-18 21:36:04

+0

@Swaff - 是的,我做到了。它不是只读的。 – webworm 2011-04-19 11:32:42

回答

1

好吧..我找到了答案。基本上,上传组件SAFileUp使用缓存上传文件的“Temp”目录来设置上传文件的权限。在我的情况下,这个目录是C:\Windows\temp。我所做的只是给帐户IIS_IUSRS读访问C:\Windows\temp目录,我能够访问上传的文件没有问题。

这是一篇关于SoftArtisans网站的文章,它引导我并帮助我找到上传文件被缓存到的目录。

http://support.softartisans.com/kbview_776.aspx

相关问题