【发布时间】:2017-03-24 03:11:03
【问题描述】:
有一个应用程序上传 zip 文件并将其提取到位于应用程序文件夹下的 Temp 文件夹中,然后将这些提取的文件复制到某个不同的目标位置,并从 Temp 文件夹中删除这些临时提取的文件。 在我的本地机器上的 IIS 上一切正常,但是当我在服务器机器上放置相同的代码时,它给出 文件 I/O 权限 错误,即使我已经给予完全 访问权限临时和目标位置文件夹。 谁可以帮我这个事??
这是相同的代码
string path = Server.MapPath("~/UploadedZipFiles/" + filename);
fileUpload1.SaveAs(path);//saves zip in temporary folder
ExtractZIP(filename, targetfolder); //extracts the zip folder contains to //target folder path
【问题讨论】:
-
关于任何权限相关问题要记住的重要一点是权限特定于身份(用户)。您需要确定将哪个用户用作您的应用程序池身份,然后为该用户设置权限。当您使用仅为后端目的(例如 Windows 服务、Web 应用程序、队列等)创建的特定用户时,它通常会简化事情。
-
@Eben - 我如何检查哪个用户被用作应用程序池身份
-
IIS 管理器的应用程序池列表中有一个“身份”列。或者,您可以在相关应用程序池的上下文菜单中选择“高级设置...”。如果您没有明确的用户,您可以搜索网络以了解如何为指定的预定义用户设置权限。通常,使用您可以完全控制的自定义/显式帐户仍然会更容易一些。