2017-06-13 124 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

希望的虛擬目錄這可以幫助一些人,因爲同樣的方式之間的「橋樑」關於這個話題的大部分答案都不清楚。