我的web應用程序需要讓管理員用戶從.net core 2應用程序添加和刪除服務的文件夾。我找到了一種提供服務文件夾列表的方法,但是我找不到一種方法來在應用程序配置後動態地添加或刪除它們。啓動後添加新的FileServer位置(啓動後編輯中間件)
如何從應用程序中重新運行配置功能?或者,如何在已經運行的服務中添加或刪除UseFileServer()
配置?
public class Startup
{
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseDeveloperExceptionPage();
app.UseMvc();
//get these dynamically from the database
var locations = new Dictionary<string, string>{
{@"C:\folder1", "/folder1"},
{@"D:\folder2", "/folder2"}
};
foreach (var kvp in locations)
{
app.UseFileServer(new FileServerOptions()
{
FileProvider = new PhysicalFileProvider(
kvp.Key
),
RequestPath = new PathString(kvp.Value),
EnableDirectoryBrowsing = true
});
}
}
}
我正在使用.net core 2.0.0-preview2-final。
這並沒有解決我的問題。我需要在啓動完成後註冊新的UseFileServer位置。我測試了它,一旦應用程序正在運行,任何新的app.UseFileServer調用都不會執行任何操作。 – TwitchBronBron
然後,我的解決方案應該可以工作。既然你有一個單件MiddlewareInjectorOptions,你可以隨時使用它(只需從服務容器中獲取它)。我前一段時間測試了它,它似乎工作正常。 –
請看看我剛添加的Gist - 起初,沒有文件服務器功能。只有當您啓用/啓用文件服務器URL時,才能通過分別轉到/ c和/ d URL來訪問C和D驅動器的內容。 –