【问题标题】:Upload Folders to Fileshare with ASP.NET Core Website使用 ASP.NET Core 网站将文件夹上传到文件共享
【发布时间】:2019-05-05 21:41:39
【问题描述】:

我希望我的 Uploads 文件夹驻留在文件共享中。

我想要这个的原因:冗余前端。

所以不要保存到:

C:\inetpub\wwwroot\wwwroot\上传

上传的内容应保存到:

\\fileshare01\MyWebsite\Uploads

我知道VirtualDirectories 存在。这适用于从文件共享读取,但写入上传目录仍会写入 lokal 驱动器。 所以使用 VirtualDirectories 我可以访问http://localhost/Uploads/myfile.png,它实际上在文件共享上,但新文件没有写在那里!

这里(简化)我如何保存文件:

IFormFileCollection files = Request.Form.Files;
var file = files.First();
using (var stream = new FileStream(@"Uploads\myfile.png", FileMode.Create))
{
    await file.CopyToAsync(stream);
}

当我尝试将新的网络路径保存为绝对路径时,似乎我需要更高的权限并最终出现 500.30 错误。我猜是因为应用程序池用户的权限太少,我认为这是一件好事。

我的问题:

这个问题是如何解决的?配置 VirtualDirectory(包括写入)时,不应该一切都自动运行吗?

【问题讨论】:

    标签: asp.net-core virtual-directory


    【解决方案1】:

    解决了。由于 appconfig.json 中的错误,我刚刚收到 500.30 错误。我没有避开我的基本路径中的反斜杠。

    我发现这个blog post

    不需要在IIS中添加“虚拟目录”,这个东西是 已弃用

    并解释这是通过 Startup.cs Configure() 方法完成的方式:

    app.UseFileServer(new FileServerOptions
    {
        FileProvider = new PhysicalFileProvider(@"\\server\path"),
        RequestPath = new PathString("/MyPath"),
        EnableDirectoryBrowsing = false
    });
    

    解决了 ASP.NET Core 的另一个配置之谜 :)

    【讨论】:

      猜你喜欢
      • 2011-01-18
      • 2012-12-25
      • 1970-01-01
      • 1970-01-01
      • 2020-04-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多