从Dotnet Core访问IIS虚拟目录

时间:2017-06-13 01:00:58

标签: iis asp.net-core .net-core

我正在构建一个Dotnet Core Web应用程序,需要允许Windows-Authenticated用户浏览已连接的虚拟目录,并查看和选择托​​管在那里的文件。

Dotnet Core应用程序是否有办法访问虚拟目录?除此之外,有没有办法让常规的Dotnet应用程序来做呢?

1 个答案:

答案 0 :(得分:3)

可以这样做。我已经在这件事上工作了两个星期,到处寻找答案。我就是这样做的。

您需要在Startup.cs的Configure方法中添加configure app.UseFileServer()

app.UseFileServer(new FileServerOptions
{
    PhysicalFileProvider("\\\\virtualPath\\photos\\wait\\"),
    RequestPath = new PathString("/AROULETTE"),
    EnableDirectoryBrowsing = true
});

这是如何工作的? 设置方式,您可以输入http://localhost:5000/AROULETTE 它将打开浏览器中PhysicalFileProvider中提供的虚拟路径。当然,这不是我真正想要的。

我需要使用C#创建目录并将文件复制到虚拟目录中。 一旦我安装了FileServer,我尝试了类似这样的功能。

if(!Directory.Exists("/AROULETTE/20170814"))
{
    Directory.Create("/AROULETTE/20170814")
}

当然,这也不是

var path = Path.Combine("http://localhost:5000/", "AROULETTE/20170814")
if(!Directory.Exists(path)
{
    Directory.Create(path)
}

相反,您只需使用文件夹的实际虚拟路径。

if(!Directory.Exists("\\\\virtualPath\\photos\\wait\\20170814"))
{
    Directory.Create("\\\\virtualPath\\photos\\wait\\20170814")
}

因此,UseFileServer用于在应用程序和虚拟文件夹之间创建“桥梁”,就像使用ASP.Net 4.5创建虚拟目录一样

希望这可以帮助一些人,因为关于这个主题的大部分答案都不明确。