Web.Config
<add key="Location" value="C:/Upload" />
//controller
private readonly string _Location = ConfigurationManager.AppSettings["Location"];
var fileName = Path.GetFileName(httpPostedFile.FileName);
var path = Path.Combine(_Location, fileName);
httpPostedFile.SaveAs(path);
此代码在本地运行良好。我意识到我们在生产环境中有一个负载均衡器。我在负载均衡器后面有 2 台服务器 A、B。有没有办法在服务器 A、B 上上传文件?我尝试做一些研究,大多数开发人员建议将文件上传到其中一个服务器上,然后每 30 分钟或 1 小时克隆一次上传文件夹。但是应该有一种通过代码执行此操作的标准方法......(我有服务器名称和 IP)
谢谢
最佳答案
您不应尝试通过您的代码执行此操作。如果其中一台服务器宕机了怎么办?您需要检测到这一点,然后在文件恢复后同步该文件。
对此有三种明智的选择:
- 复制 - 假设您使用的是 Windows,您可以设置 Distributed File System并让这个句柄在您的服务器之间获取文件。
- 同步 - 定期在您的生产服务器之间同步文件。这会产生一个问题,如果您将文件上传到 A,它不会立即在 B 上可用。
- 共享存储 - 文件保存到两个服务器都可以访问的网络共享中。在负载平衡环境中,如果提供文件的服务器不可用,这可能会导致单点故障。
关于c# - 在多个服务器上上传文件的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28985337/