0

我有一个场景,我在负载平衡器 F5 后面使用 2 个 IIS 服务器在 asp.net 核心(nopcommerce 4.10)上运行,并带有粘性会话。

由于 nopcommerce 目前不支持网络农场,我正在寻找一种解决方法来在这两个服务器之间共享 wwwroot 文件夹以获取图像/文件,并考虑是否可以在应用程序根路径以外的其他位置创建 wwwroot 文件夹以便这两个应用程序可以使用它(如果我以某种方式在 startup.cs 中配置 dotnet core 应用程序以使用来自不同路径的 wwwroot 文件夹,这是可能的)。或者,也可以从其中一个共享 wwwroot 文件夹。

我当前的解决方案是在从管理员端上传任何内容时将文件复制到另一台服务器上,但这不适用于捆绑。

4

2 回答 2

0

我不知道 nopcommerce,但一种方法是设置网络共享并将其映射到 wwwroot 文件夹,并将其写入权限授予应用程序池。写权限只是因为您写的是您正在从管理员上传文件。我猜你也有你想要包含在 wwwroot 文件夹中的捆绑的一部分?

喜欢 wwwroot/my_upload_folder_share

于 2019-12-02T05:18:52.243 回答
0

Robban1980 的评论和回答很有帮助,我非常感谢。尽管我希望发布我的最终解决方案,但它会帮助某人,特别是对于 nopcommerce 开发人员。

我已经覆盖了 in FileProvider 的方法(nopcommerce 使用它来访问文件资源)从我的文件夹中获取文件,而不是从 wwwroot 中获取文件。

public override string GetAbsolutePath(params string[] paths)  
{
      var allPaths = paths.ToList();
      allPaths.Insert(0, "my-folder");
      return Path.Combine(allPaths.ToArray());
}

此外,我必须为该文件夹设置读/写文件权限,以使其可以通过网络访问

于 2019-12-24T13:57:36.473 回答