[英]Ways to Upload File on multiple servers?
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的)
Thnaks
您不应该尝试通过代码执行此操作。 如果其中一台服务器出现故障会怎样? 您需要检测到这一点,然后在文件重新启动时同步该文件。
对此有三种明智的选择:
开发人员是对的。 您的应用程序不应该关心它运行的服务器数量和服务器数量。 只需与您的系统管理员交谈并设置rsync或类似内容来同步目录,也可以提高响应速度,因为您的应用程序只需保存一次。
但是,如果必须如此,它就像:
foreach (string path in destinationPaths)
{
httpPostedFile.SaveAs(path);
}
SaveAs()
不保证是线程安全的,因此您无法对其进行并行化。 您可以复制流并将其并行写入,但同样,您不希望代码对此负责。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.