【发布时间】:2010-09-28 17:42:43
【问题描述】:
我有一个我开发的网络项目,其中一个主要功能是上传文件。
所有权限均基于 Windows 身份验证。当我第一次创建项目时,我没有意识到它会在负载平衡的服务器上。现在是负载均衡服务器的环境,文件上传成了大问题。
我最初以为我可以只为网络共享创建一个虚拟目录,作为上传文件夹,但是这个解决方案变成了权限的噩梦。我无法在生产环境中进行任何成功的测试。
所以我现在在想,我的解决方案是在服务器上创建一个服务来检查上传目录并同步它们。我看到的另一种可能的解决方案是将文件存储在我过去遇到过一些问题的数据库中。
有人知道将文件上传到使用 Windows 权限进行身份验证的负载平衡服务器的直接解决方案吗?
谢谢。
更新 - 所以我已更改应用程序池以通过对共享和文件夹本身具有 Windows 权限的完全权限的域帐户运行。虚拟目录在 IIS 中具有完全权限,但我仍然遇到同样的问题。
其中需要完成的事情之一就是创建目录的能力,我认为这可能会让我感到困惑。我只是在使用 System.IO.Directory.CreateDirectory
关于我可能缺少权限的任何其他想法?
【问题讨论】:
-
如果您说它具有“完全权限”,我不太确定可能出了什么问题 - 只要确保它确实如此,实际上对“修改”和“写入”权限目录。如果您使用组来分配 NTFS 权限,请尝试直接使用该帐户。
-
此外,如果您更改工作进程帐户的组成员身份,则必须重新启动 IIS(不仅仅是网站或应用程序池)才能重新进行身份验证,就像用户必须注销一样并登录。
-
您可以尝试使用 AWS S3 来存储您的文件。我在负载平衡的服务器上运行一个项目,并将任何用户上传的文件放在 S3 存储桶中。如果您的网站托管在 AWS 服务器上,则存储/检索操作会非常快。
标签: permissions file-upload load-balancing