我的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驱动器的内容。 –