【问题标题】:Save to / update existing file in Content folder in MVC 5?在 MVC 5 的 Content 文件夹中保存/更新现有文件?
【发布时间】:2016-03-12 08:19:08
【问题描述】:

所以我的 Content 文件夹中有一个 .json 文件,需要从中读取和写入。这两个功能在我的本地站点上都很好用,但是当我将它推送到生产环境时,只有从作品中读取和写入才会给我一个 500 错误。

是否可以保存或更新实时制作站点的 Content 文件夹中的现有文件?

【问题讨论】:

    标签: javascript c# asp.net-mvc asp.net-mvc-4 asp.net-mvc-5


    【解决方案1】:

    当您处于开发阶段时,IIS Express 以您的用户身份运行,并且对您的用户帐户所做的任何事情都具有权限。在生产环境中,IIS(或者特别是 AppPool)默认以 IIS_USR 运行,并且仅具有分配给该用户的权限。

    为安全起见,IIS_USR 仅在文档​​根目录中具有读取和/或执行权限。通常,允许 Web 服务器修改网站文件将是一件坏事。如果您需要允许这样做,那么您需要授予 IIS_USR(或 AppPool 模拟的任何其他用户)对 Content 目录的写入权限。

    但是,需要注意的是,Content 目录中的文件并不是要被修改的。至少,重新发布该站点很可能会覆盖或以其他方式破坏您所做的任何修改。在最坏的情况下,您可能会打开攻击向量。我建议将您的写入限制在站点文档根目录之外的目录中,然后如果您需要从那里访问文件,您可以添加一个虚拟目录。

    【讨论】:

    • 非常感谢。 (我不知道 Chris Pratt 是一名网络开发人员,这个人有什么不能做的?!)但是你提出了一些非常好的观点 - 我会这样做。再次感谢!
    猜你喜欢
    • 2015-05-08
    • 2020-02-21
    • 2015-11-07
    • 1970-01-01
    • 2012-06-14
    • 2012-08-04
    • 1970-01-01
    • 2012-06-03
    • 1970-01-01
    相关资源
    最近更新 更多