【问题标题】:ASP.NET Core PhysicalFileProvider UNC errorASP.NET Core PhysicalFileProvider UNC 错误
【发布时间】:2021-01-05 22:24:45
【问题描述】:

一段时间以来一直试图让它在我的 MAC 上运行,但仍然没有运气。 在 ASP.NET Core 应用程序中,我试图从 Windows Server 上的网络共享中获取内容。我读到您可以在包含以下内容时通过 Startup.cs 启动静态文件:

app.UseFileServer(new FileServerOptions
{
    FileProvider = new PhysicalFileProvider(@"\\192.168.178.101\2020$"),
    RequestPath = new PathString("/2020"),
    EnableDirectoryBrowsing = false
});

请注意,我在 MacOS 笔记本电脑上运行此程序。我也尝试过 SMB URL,但没有运气。我可以通过 Finder 很好地连接共享。 我总是收到错误“路径必须是绝对的”。该服务器上的共享是一个名为 2020 的文件夹。我也尝试过不使用 $,但没有运气。我也尝试将 smb:// 放在前面,但它将 UNC 视为相对文件夹路径。

我真的希望有人可以帮助我。

【问题讨论】:

    标签: asp.net-core windows-server network-share


    【解决方案1】:

    地址格式不正确。它不知道协议。您可以安装 nuget 包SharpCifs 并获取文件为:

    var folder = new 
    SmbFile("smb://UserName:Password@ServerIP/ShareName/FolderName/");
    var modeDate = new DateTime(2000, 1, 1, 0, 0, 0, DateTimeKind.Utc);
    
    foreach (SmbFile item in folder.ListFiles())
    {
        var modeDate = epocDate.AddMilliseconds(item.LastModified()).ToLocalTime();
        var name = item.GetName();
        var type = item.IsDirectory() ? "dir" : "file";
        var date = lastModDate.ToString("yyyy-MM-dd HH:mm:ss");
        var msg = $"{name} ({type}) - LastMod: {date}";
    
    }
    

    【讨论】:

    • 我不想使用这种方法,而是想使用 PhysicalFileProvider 方法。但是您是否假设 MacOS 上的 .NET Core 完全不支持它?
    • PhysicalFileProvider 不支持连接smb的方法。它可以通过文件系统中的绝对路径连接它。
    • 我在查找信息时出现了这个链接:jauernig-it.de/…。在那里它使用网络文件路径。那么为什么它可以在 Windows 中使用,而不是在 MacOS 中呢?
    猜你喜欢
    • 2020-09-16
    • 2017-08-06
    • 1970-01-01
    • 2017-01-15
    • 2018-12-19
    • 2017-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多