我有一个场景,我在负载均衡器 F5 后面的 2 个 IIS 服务器上运行 asp.net 核心 (nopcommerce 4.10( 与粘性会话。
由于 nopcommerce 目前不支持 web 农场,我正在寻找一种解决方法,在这两个服务器之间共享图像/文件的 wwwroot 文件夹,并考虑是否可以在应用程序根路径以外的其他地方创建 wwwroot 文件夹,以便这两个应用程序可以使用它(如果我以某种方式在启动时配置 dotnet 核心应用程序.cs以使用来自不同路径的 wwwroot 文件夹,这是可能的(。 或者从其中一个共享两者的 wwwroot 文件夹。
我目前的解决方案是从管理员端上传任何内容时将文件复制到另一台服务器上,但这不适用于捆绑。
我不知道 nopcommerce,但一种方法可能是设置网络共享并将其映射到 wwwroot 文件夹,并授予对应用程序池的写入权限。写入权限只是因为您写了您正在从管理员上传文件。我想您也有想要包含在 wwwroot 文件夹中的捆绑部分内容?
喜欢wwwroot/my_upload_folder_share
Robban1980的评论和回答有所帮助,我真的很感激。虽然我正在发布我的最终解决方案希望,但它将帮助某人,特别是对于nopcommerce开发人员。
我已经覆盖了FileProvider中的方法(nopcommerce使用它来访问文件资源(从我的文件夹中获取文件,而不是从wwwroot中获取文件。
public override string GetAbsolutePath(params string[] paths)
{
var allPaths = paths.ToList();
allPaths.Insert(0, "my-folder");
return Path.Combine(allPaths.ToArray());
}
此外,我必须为文件夹设置读/写文件权限,以便通过网络访问它