2017-06-13 86 views
1

我正在构建一个Dotnet Core Web应用程序,它需要允许Windows认证的用户浏览连接的虚拟目录并查看并选择托管在那里的文件。从Dotnet核心访问IIS虚拟目录

有没有Dotnet Core应用程序访问虚拟目录的方法?除此之外,有没有办法让一个普通的Dotnet应用程序来做到这一点?

+2

[IIS中的ASP.NET Core应用程序内的虚拟目录]的可能重复(https://stackoverflow.com/questions/36030121/virtual-directory-inside-of-asp-net-core-app-in- iis) – natemcmaster

+0

谢谢,伙计们。我认为这给了我需要的响亮的“不”。 – BenWurth

回答

2

有可能这样做。我一直在做这件事情已经两个星期了,到处寻找答案。这是我如何做到的。

您需要在配置app.UseFileServer加()在的Startup.cs

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

希望的虚拟目录这可以帮助一些人,因为同样的方式之间的“桥梁”关于这个话题的大部分答案都不清楚。