【发布时间】:2016-03-12 08:19:08
【问题描述】:
所以我的 Content 文件夹中有一个 .json 文件,需要从中读取和写入。这两个功能在我的本地站点上都很好用,但是当我将它推送到生产环境时,只有从作品中读取和写入才会给我一个 500 错误。
是否可以保存或更新实时制作站点的 Content 文件夹中的现有文件?
【问题讨论】:
标签: javascript c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5
所以我的 Content 文件夹中有一个 .json 文件,需要从中读取和写入。这两个功能在我的本地站点上都很好用,但是当我将它推送到生产环境时,只有从作品中读取和写入才会给我一个 500 错误。
是否可以保存或更新实时制作站点的 Content 文件夹中的现有文件?
【问题讨论】:
标签: javascript c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5
当您处于开发阶段时,IIS Express 以您的用户身份运行,并且对您的用户帐户所做的任何事情都具有权限。在生产环境中,IIS(或者特别是 AppPool)默认以 IIS_USR 运行,并且仅具有分配给该用户的权限。
为安全起见,IIS_USR 仅在文档根目录中具有读取和/或执行权限。通常,允许 Web 服务器修改网站文件将是一件坏事。如果您需要允许这样做,那么您需要授予 IIS_USR(或 AppPool 模拟的任何其他用户)对 Content 目录的写入权限。
但是,需要注意的是,Content 目录中的文件并不是要被修改的。至少,重新发布该站点很可能会覆盖或以其他方式破坏您所做的任何修改。在最坏的情况下,您可能会打开攻击向量。我建议将您的写入限制在站点文档根目录之外的目录中,然后如果您需要从那里访问文件,您可以添加一个虚拟目录。
【讨论】: